diff --git a/pyqtgraph/exporters/CSVExporter.py b/pyqtgraph/exporters/CSVExporter.py
index c6386655bd99c2d6cd311cf8d2b48c3daaa46816..b0cf5af5fc47eef3f0f6ad0cbf3fedf22b1c95a8 100644
--- a/pyqtgraph/exporters/CSVExporter.py
+++ b/pyqtgraph/exporters/CSVExporter.py
@@ -1,8 +1,7 @@
-import pyqtgraph as pg
-from pyqtgraph.Qt import QtGui, QtCore
+from ..Qt import QtGui, QtCore
 from .Exporter import Exporter
-from pyqtgraph.parametertree import Parameter
-
+from ..parametertree import Parameter
+from .. import PlotItem
 
 __all__ = ['CSVExporter']
     
@@ -22,7 +21,7 @@ class CSVExporter(Exporter):
     
     def export(self, fileName=None):
         
-        if not isinstance(self.item, pg.PlotItem):
+        if not isinstance(self.item, PlotItem):
             raise Exception("Must have a PlotItem selected for CSV export.")
         
         if fileName is None:
diff --git a/pyqtgraph/exporters/Exporter.py b/pyqtgraph/exporters/Exporter.py
index 281fbb9aea55993c553b8d01c94ba392b0bf6672..64a2529449a489dd129b14111166a517d9b673e9 100644
--- a/pyqtgraph/exporters/Exporter.py
+++ b/pyqtgraph/exporters/Exporter.py
@@ -1,7 +1,7 @@
-from pyqtgraph.widgets.FileDialog import FileDialog
-import pyqtgraph as pg
-from pyqtgraph.Qt import QtGui, QtCore, QtSvg
-from pyqtgraph.python2_3 import asUnicode
+from ..widgets.FileDialog import FileDialog
+from ..Qt import QtGui, QtCore, QtSvg
+from ..python2_3 import asUnicode
+from ..GraphicsScene import GraphicsScene
 import os, re
 LastExportDirectory = None
 
@@ -77,20 +77,20 @@ class Exporter(object):
         self.export(fileName=fileName, **self.fileDialog.opts)
         
     def getScene(self):
-        if isinstance(self.item, pg.GraphicsScene):
+        if isinstance(self.item, GraphicsScene):
             return self.item
         else:
             return self.item.scene()
         
     def getSourceRect(self):
-        if isinstance(self.item, pg.GraphicsScene):
+        if isinstance(self.item, GraphicsScene):
             w = self.item.getViewWidget()
             return w.viewportTransform().inverted()[0].mapRect(w.rect())
         else:
             return self.item.sceneBoundingRect()
         
     def getTargetRect(self):        
-        if isinstance(self.item, pg.GraphicsScene):
+        if isinstance(self.item, GraphicsScene):
             return self.item.getViewWidget().rect()
         else:
             return self.item.mapRectToDevice(self.item.boundingRect())
diff --git a/pyqtgraph/exporters/ImageExporter.py b/pyqtgraph/exporters/ImageExporter.py
index 40a76fbdb6f1ebd21d9b94a3e97a6fe1d918549a..c8abb02b3fcf86d0290998344eaa1d0576d26534 100644
--- a/pyqtgraph/exporters/ImageExporter.py
+++ b/pyqtgraph/exporters/ImageExporter.py
@@ -1,7 +1,7 @@
 from .Exporter import Exporter
-from pyqtgraph.parametertree import Parameter
-from pyqtgraph.Qt import QtGui, QtCore, QtSvg, USE_PYSIDE
-import pyqtgraph as pg
+from ..parametertree import Parameter
+from ..Qt import QtGui, QtCore, QtSvg, USE_PYSIDE\
+from .. import functions as fn
 import numpy as np
 
 __all__ = ['ImageExporter']
@@ -73,7 +73,7 @@ class ImageExporter(Exporter):
         bg[:,:,1] = color.green()
         bg[:,:,2] = color.red()
         bg[:,:,3] = color.alpha()
-        self.png = pg.makeQImage(bg, alpha=True)
+        self.png = fn.makeQImage(bg, alpha=True)
         
         ## set resolution of image:
         origTargetRect = self.getTargetRect()
diff --git a/pyqtgraph/exporters/Matplotlib.py b/pyqtgraph/exporters/Matplotlib.py
index 420084685a3ef92101fdbf7d74397bdff82b75b2..c2980b494e7ff77b1bcf85bbc2124356e9ccc3ea 100644
--- a/pyqtgraph/exporters/Matplotlib.py
+++ b/pyqtgraph/exporters/Matplotlib.py
@@ -1,7 +1,7 @@
-import pyqtgraph as pg
-from pyqtgraph.Qt import QtGui, QtCore
+from ..Qt import QtGui, QtCore
 from .Exporter import Exporter
-
+from .. import PlotItem
+from .. import functions as fn
 
 __all__ = ['MatplotlibExporter']
     
@@ -17,7 +17,7 @@ class MatplotlibExporter(Exporter):
     
     def export(self, fileName=None):
         
-        if isinstance(self.item, pg.PlotItem):
+        if isinstance(self.item, PlotItem):
             mpw = MatplotlibWindow()
             MatplotlibExporter.windows.append(mpw)
             fig = mpw.getFigure()
@@ -29,23 +29,23 @@ class MatplotlibExporter(Exporter):
             for item in self.item.curves:
                 x, y = item.getData()
                 opts = item.opts
-                pen = pg.mkPen(opts['pen'])
+                pen = fn.mkPen(opts['pen'])
                 if pen.style() == QtCore.Qt.NoPen:
                     linestyle = ''
                 else:
                     linestyle = '-'
-                color = tuple([c/255. for c in pg.colorTuple(pen.color())])
+                color = tuple([c/255. for c in fn.colorTuple(pen.color())])
                 symbol = opts['symbol']
                 if symbol == 't':
                     symbol = '^'
-                symbolPen = pg.mkPen(opts['symbolPen'])
-                symbolBrush = pg.mkBrush(opts['symbolBrush'])
-                markeredgecolor = tuple([c/255. for c in pg.colorTuple(symbolPen.color())])
-                markerfacecolor = tuple([c/255. for c in pg.colorTuple(symbolBrush.color())])
+                symbolPen = fn.mkPen(opts['symbolPen'])
+                symbolBrush = fn.mkBrush(opts['symbolBrush'])
+                markeredgecolor = tuple([c/255. for c in fn.colorTuple(symbolPen.color())])
+                markerfacecolor = tuple([c/255. for c in fn.colorTuple(symbolBrush.color())])
                 
                 if opts['fillLevel'] is not None and opts['fillBrush'] is not None:
-                    fillBrush = pg.mkBrush(opts['fillBrush'])
-                    fillcolor = tuple([c/255. for c in pg.colorTuple(fillBrush.color())])
+                    fillBrush = fn.mkBrush(opts['fillBrush'])
+                    fillcolor = tuple([c/255. for c in fn.colorTuple(fillBrush.color())])
                     ax.fill_between(x=x, y1=y, y2=opts['fillLevel'], facecolor=fillcolor)
                 
                 ax.plot(x, y, marker=symbol, color=color, linewidth=pen.width(), linestyle=linestyle, markeredgecolor=markeredgecolor, markerfacecolor=markerfacecolor)
@@ -62,7 +62,7 @@ MatplotlibExporter.register()
 
 class MatplotlibWindow(QtGui.QMainWindow):
     def __init__(self):
-        import pyqtgraph.widgets.MatplotlibWidget
+        from .. import widgets.MatplotlibWidget
         QtGui.QMainWindow.__init__(self)
         self.mpl = pyqtgraph.widgets.MatplotlibWidget.MatplotlibWidget()
         self.setCentralWidget(self.mpl)
diff --git a/pyqtgraph/exporters/PrintExporter.py b/pyqtgraph/exporters/PrintExporter.py
index ef35c2f846056d85b5e5a48e1b1ddb798fa09cd0..3e2d45facc2ed93ca769a15fc84c3c79421df185 100644
--- a/pyqtgraph/exporters/PrintExporter.py
+++ b/pyqtgraph/exporters/PrintExporter.py
@@ -1,6 +1,6 @@
 from .Exporter import Exporter
-from pyqtgraph.parametertree import Parameter
-from pyqtgraph.Qt import QtGui, QtCore, QtSvg
+from ..parametertree import Parameter
+from ..Qt import QtGui, QtCore, QtSvg
 import re
 
 __all__ = ['PrintExporter']  
diff --git a/pyqtgraph/exporters/SVGExporter.py b/pyqtgraph/exporters/SVGExporter.py
index 425f48e99475e88799b8d3a16549696d83457342..4a02965bc010a53280e087f571870082a9b547a8 100644
--- a/pyqtgraph/exporters/SVGExporter.py
+++ b/pyqtgraph/exporters/SVGExporter.py
@@ -1,8 +1,9 @@
 from .Exporter import Exporter
-from pyqtgraph.python2_3 import asUnicode
-from pyqtgraph.parametertree import Parameter
-from pyqtgraph.Qt import QtGui, QtCore, QtSvg
-import pyqtgraph as pg
+from ..python2_3 import asUnicode
+from ..parametertree import Parameter
+from ..Qt import QtGui, QtCore, QtSvg
+from .. import debug
+from .. import functions as fn
 import re
 import xml.dom.minidom as xml
 import numpy as np
@@ -156,7 +157,7 @@ def _generateItemSvg(item, nodes=None, root=None):
     ##    
     ##    Both 2 and 3 can be addressed by drawing all items in world coordinates.
     
-    profiler = pg.debug.Profiler()
+    profiler = debug.Profiler()
     
     if nodes is None:  ## nodes maps all node IDs to their XML element. 
                        ## this allows us to ensure all elements receive unique names.
@@ -196,17 +197,12 @@ def _generateItemSvg(item, nodes=None, root=None):
         tr2 = QtGui.QTransform()
         tr2.translate(-rootPos.x(), -rootPos.y())
         tr = tr * tr2
-        #print item, pg.SRTTransform(tr)
 
-        #tr.translate(item.pos().x(), item.pos().y())
-        #tr = tr * item.transform()
         arr = QtCore.QByteArray()
         buf = QtCore.QBuffer(arr)
         svg = QtSvg.QSvgGenerator()
         svg.setOutputDevice(buf)
         dpi = QtGui.QDesktopWidget().physicalDpiX()
-        ### not really sure why this works, but it seems to be important:
-        #self.svg.setSize(QtCore.QSize(self.params['width']*dpi/90., self.params['height']*dpi/90.))
         svg.setResolution(dpi)
 
         p = QtGui.QPainter()
@@ -350,7 +346,7 @@ def correctCoordinates(node, item):
             if ch.tagName == 'polyline':
                 removeTransform = True
                 coords = np.array([[float(a) for a in c.split(',')] for c in ch.getAttribute('points').strip().split(' ')])
-                coords = pg.transformCoordinates(tr, coords, transpose=True)
+                coords = fn.transformCoordinates(tr, coords, transpose=True)
                 ch.setAttribute('points', ' '.join([','.join([str(a) for a in c]) for c in coords]))
             elif ch.tagName == 'path':
                 removeTransform = True
@@ -365,7 +361,7 @@ def correctCoordinates(node, item):
                         x = x[1:]
                     else:
                         t = ''
-                    nc = pg.transformCoordinates(tr, np.array([[float(x),float(y)]]), transpose=True)
+                    nc = fn.transformCoordinates(tr, np.array([[float(x),float(y)]]), transpose=True)
                     newCoords += t+str(nc[0,0])+','+str(nc[0,1])+' '
                 ch.setAttribute('d', newCoords)
             elif ch.tagName == 'text':
@@ -375,7 +371,7 @@ def correctCoordinates(node, item):
                     #[float(ch.getAttribute('x')), float(ch.getAttribute('y'))], 
                     #[float(ch.getAttribute('font-size')), 0], 
                     #[0,0]])
-                #c = pg.transformCoordinates(tr, c, transpose=True)
+                #c = fn.transformCoordinates(tr, c, transpose=True)
                 #ch.setAttribute('x', str(c[0,0]))
                 #ch.setAttribute('y', str(c[0,1]))
                 #fs = c[1]-c[2]
@@ -397,7 +393,7 @@ def correctCoordinates(node, item):
             ## correct line widths if needed
             if removeTransform and ch.getAttribute('vector-effect') != 'non-scaling-stroke':
                 w = float(grp.getAttribute('stroke-width'))
-                s = pg.transformCoordinates(tr, np.array([[w,0], [0,0]]), transpose=True)
+                s = fn.transformCoordinates(tr, np.array([[w,0], [0,0]]), transpose=True)
                 w = ((s[0]-s[1])**2).sum()**0.5
                 ch.setAttribute('stroke-width', str(w))
             
@@ -443,35 +439,9 @@ def itemTransform(item, root):
             tr = item.sceneTransform()
         else:
             tr = itemTransform(nextRoot, root) * item.itemTransform(nextRoot)[0]
-            #pos = QtGui.QTransform()
-            #pos.translate(root.pos().x(), root.pos().y())
-            #tr = pos * root.transform() * item.itemTransform(root)[0]
-        
     
     return tr
 
-
-#def correctStroke(node, item, root, width=1):
-    ##print "==============", item, node
-    #if node.hasAttribute('stroke-width'):
-        #width = float(node.getAttribute('stroke-width'))
-    #if node.getAttribute('vector-effect') == 'non-scaling-stroke':
-        #node.removeAttribute('vector-effect')
-        #if isinstance(root, QtGui.QGraphicsScene):
-            #w = item.mapFromScene(pg.Point(width,0))
-            #o = item.mapFromScene(pg.Point(0,0))
-        #else:
-            #w = item.mapFromItem(root, pg.Point(width,0))
-            #o = item.mapFromItem(root, pg.Point(0,0))
-        #w = w-o
-        ##print "   ", w, o, w-o
-        #w = (w.x()**2 + w.y()**2) ** 0.5
-        ##print "   ", w
-        #node.setAttribute('stroke-width', str(w))
-    
-    #for ch in node.childNodes:
-        #if isinstance(ch, xml.Element):
-            #correctStroke(ch, item, root, width)
             
 def cleanXml(node):
     ## remove extraneous text; let the xml library do the formatting.
diff --git a/pyqtgraph/exporters/__init__.py b/pyqtgraph/exporters/__init__.py
index e2a81bc2b8c3f3a36a947dbe8d19bcc59e7bd0f6..8be1c3b6f19426e49ce75fef729d749e46fc9c9d 100644
--- a/pyqtgraph/exporters/__init__.py
+++ b/pyqtgraph/exporters/__init__.py
@@ -1,16 +1,3 @@
-#Exporters = []
-#from pyqtgraph import importModules
-#import os
-#d = os.path.split(__file__)[0]
-#for mod in importModules('', globals(), locals(), excludes=['Exporter']).values():
-    #if hasattr(mod, '__all__'):
-        #names = mod.__all__
-    #else:
-        #names = [n for n in dir(mod) if n[0] != '_']
-    #for k in names:
-        #if hasattr(mod, k):
-            #Exporters.append(getattr(mod, k))
-
 from .Exporter import Exporter
 from .ImageExporter import *
 from .SVGExporter import *
diff --git a/pyqtgraph/multiprocess/parallelizer.py b/pyqtgraph/multiprocess/parallelizer.py
index e96692e2e71b6e522fdb4387ebaea9484ab52342..4ad30b6e0d18f9ea8f9945d2e421908a69403047 100644
--- a/pyqtgraph/multiprocess/parallelizer.py
+++ b/pyqtgraph/multiprocess/parallelizer.py
@@ -63,8 +63,8 @@ class Parallelize(object):
             self.showProgress = True
             if isinstance(progressDialog, basestring):
                 progressDialog = {'labelText': progressDialog}
-            import pyqtgraph as pg
-            self.progressDlg = pg.ProgressDialog(**progressDialog)
+            from ..widgets.ProgressDialog import ProgressDialog
+            self.progressDlg = ProgressDialog(**progressDialog)
         
         if workers is None:
             workers = self.suggestedWorkerCount()
diff --git a/pyqtgraph/multiprocess/processes.py b/pyqtgraph/multiprocess/processes.py
index 4d32c999df277eca72cec272c0acac234f32d286..5a4ccb99b08267cdc8e21c079b3907049fd4dda2 100644
--- a/pyqtgraph/multiprocess/processes.py
+++ b/pyqtgraph/multiprocess/processes.py
@@ -1,7 +1,8 @@
 from .remoteproxy import RemoteEventHandler, ClosedError, NoResultError, LocalObjectProxy, ObjectProxy
 import subprocess, atexit, os, sys, time, random, socket, signal
 import multiprocessing.connection
-import pyqtgraph as pg
+from ..Qt import USE_PYSIDE
+
 try:
     import cPickle as pickle
 except ImportError:
@@ -118,7 +119,7 @@ class Process(RemoteEventHandler):
             ppid=pid, 
             targetStr=targetStr, 
             path=sysPath, 
-            pyside=pg.Qt.USE_PYSIDE,
+            pyside=USE_PYSIDE,
             debug=debug
             )
         pickle.dump(data, self.proc.stdin)
@@ -337,7 +338,7 @@ class RemoteQtEventHandler(RemoteEventHandler):
         RemoteEventHandler.__init__(self, *args, **kwds)
         
     def startEventTimer(self):
-        from pyqtgraph.Qt import QtGui, QtCore
+        from ..Qt import QtGui, QtCore
         self.timer = QtCore.QTimer()
         self.timer.timeout.connect(self.processRequests)
         self.timer.start(10)
@@ -346,7 +347,7 @@ class RemoteQtEventHandler(RemoteEventHandler):
         try:
             RemoteEventHandler.processRequests(self)
         except ClosedError:
-            from pyqtgraph.Qt import QtGui, QtCore
+            from ..Qt import QtGui, QtCore
             QtGui.QApplication.instance().quit()
             self.timer.stop()
             #raise SystemExit
@@ -384,7 +385,7 @@ class QtProcess(Process):
         self.startEventTimer()
         
     def startEventTimer(self):
-        from pyqtgraph.Qt import QtGui, QtCore  ## avoid module-level import to keep bootstrap snappy.
+        from ..Qt import QtGui, QtCore  ## avoid module-level import to keep bootstrap snappy.
         self.timer = QtCore.QTimer()
         if self._processRequests:
             app = QtGui.QApplication.instance()
@@ -415,7 +416,7 @@ def startQtEventLoop(name, port, authkey, ppid, debug=False):
     conn = multiprocessing.connection.Client(('localhost', int(port)), authkey=authkey)
     if debug:
         print('[%d] connected; starting remote proxy.' % os.getpid())
-    from pyqtgraph.Qt import QtGui, QtCore
+    from ..Qt import QtGui, QtCore
     #from PyQt4 import QtGui, QtCore
     app = QtGui.QApplication.instance()
     #print app
diff --git a/pyqtgraph/opengl/GLGraphicsItem.py b/pyqtgraph/opengl/GLGraphicsItem.py
index 9680fba7e4450a90d689ef5ee8eed1c7e037708a..cdfaa6834313de556040a6c96c61a27c7e664320 100644
--- a/pyqtgraph/opengl/GLGraphicsItem.py
+++ b/pyqtgraph/opengl/GLGraphicsItem.py
@@ -1,5 +1,5 @@
-from pyqtgraph.Qt import QtGui, QtCore
-from pyqtgraph import Transform3D
+from ..Qt import QtGui, QtCore
+from .. import Transform3D
 from OpenGL.GL import *
 from OpenGL import GL
 
diff --git a/pyqtgraph/opengl/GLViewWidget.py b/pyqtgraph/opengl/GLViewWidget.py
index 89fef92ed6a8edc35eccfeb07df8afde0483cb99..d74a13ce58d9d4a0a3178d3c99e6656d580049c7 100644
--- a/pyqtgraph/opengl/GLViewWidget.py
+++ b/pyqtgraph/opengl/GLViewWidget.py
@@ -1,9 +1,9 @@
-from pyqtgraph.Qt import QtCore, QtGui, QtOpenGL
+from ..Qt import QtCore, QtGui, QtOpenGL
 from OpenGL.GL import *
 import OpenGL.GL.framebufferobjects as glfbo
 import numpy as np
-from pyqtgraph import Vector
-import pyqtgraph.functions as fn
+from .. import Vector
+from .. import functions as fn
 
 ##Vector = QtGui.QVector3D
 
@@ -179,7 +179,7 @@ class GLViewWidget(QtOpenGL.QGLWidget):
                         self._itemNames[id(i)] = i
                     i.paint()
                 except:
-                    import pyqtgraph.debug
+                    from .. import debug
                     pyqtgraph.debug.printExc()
                     msg = "Error while drawing item %s." % str(item)
                     ver = glGetString(GL_VERSION)
@@ -345,7 +345,7 @@ class GLViewWidget(QtOpenGL.QGLWidget):
         ## Only to be called from within exception handler.
         ver = glGetString(GL_VERSION).split()[0]
         if int(ver.split('.')[0]) < 2:
-            import pyqtgraph.debug
+            from .. import debug
             pyqtgraph.debug.printExc()
             raise Exception(msg + " The original exception is printed above; however, pyqtgraph requires OpenGL version 2.0 or greater for many of its 3D features and your OpenGL version is %s. Installing updated display drivers may resolve this issue." % ver)
         else:
diff --git a/pyqtgraph/opengl/MeshData.py b/pyqtgraph/opengl/MeshData.py
index 71e566c936e47a9698521a64c89a5ada83654ff6..3046459d0272c8c9b2c6f505dd93e7fe6e5dffb6 100644
--- a/pyqtgraph/opengl/MeshData.py
+++ b/pyqtgraph/opengl/MeshData.py
@@ -1,5 +1,5 @@
-from pyqtgraph.Qt import QtGui
-import pyqtgraph.functions as fn
+from ..Qt import QtGui
+from .. import functions as fn
 import numpy as np
 
 class MeshData(object):
diff --git a/pyqtgraph/opengl/__init__.py b/pyqtgraph/opengl/__init__.py
index d10932a50529e40b34a077bf2683e23333b6700c..931003e4106dff4f5544dd5d121f0ea97bd538fd 100644
--- a/pyqtgraph/opengl/__init__.py
+++ b/pyqtgraph/opengl/__init__.py
@@ -1,7 +1,7 @@
 from .GLViewWidget import GLViewWidget
 
 ## dynamic imports cause too many problems.
-#from pyqtgraph import importAll
+#from .. import importAll
 #importAll('items', globals(), locals())
 
 from .items.GLGridItem import * 
diff --git a/pyqtgraph/opengl/glInfo.py b/pyqtgraph/opengl/glInfo.py
index 28da1f695c600c0fe616b4d205cb145ce99e5799..84346d81a75c0ebc34bce6073f9e2d4b5013efef 100644
--- a/pyqtgraph/opengl/glInfo.py
+++ b/pyqtgraph/opengl/glInfo.py
@@ -1,4 +1,4 @@
-from pyqtgraph.Qt import QtCore, QtGui, QtOpenGL
+from ..Qt import QtCore, QtGui, QtOpenGL
 from OpenGL.GL import *
 app = QtGui.QApplication([])
 
diff --git a/pyqtgraph/opengl/items/GLAxisItem.py b/pyqtgraph/opengl/items/GLAxisItem.py
index 860ac497b1ded9e854e8e06ca405d9666b27ac45..c6c206e461797f68394c56a73a98b1e877133cf3 100644
--- a/pyqtgraph/opengl/items/GLAxisItem.py
+++ b/pyqtgraph/opengl/items/GLAxisItem.py
@@ -1,6 +1,6 @@
 from OpenGL.GL import *
 from .. GLGraphicsItem import GLGraphicsItem
-from pyqtgraph import QtGui
+from ... import QtGui
 
 __all__ = ['GLAxisItem']
 
diff --git a/pyqtgraph/opengl/items/GLBoxItem.py b/pyqtgraph/opengl/items/GLBoxItem.py
index bc25afd122e981bafcd73394100444c0652ad3ed..f0a6ae6c91a66fd89471b25a61f82dd660d6a273 100644
--- a/pyqtgraph/opengl/items/GLBoxItem.py
+++ b/pyqtgraph/opengl/items/GLBoxItem.py
@@ -1,7 +1,7 @@
 from OpenGL.GL import *
 from .. GLGraphicsItem import GLGraphicsItem
-from pyqtgraph.Qt import QtGui
-import pyqtgraph as pg
+from ...Qt import QtGui
+from ... import functions as fn
 
 __all__ = ['GLBoxItem']
 
@@ -38,7 +38,7 @@ class GLBoxItem(GLGraphicsItem):
     
     def setColor(self, *args):
         """Set the color of the box. Arguments are the same as those accepted by functions.mkColor()"""
-        self.__color = pg.Color(*args)
+        self.__color = fn.Color(*args)
         
     def color(self):
         return self.__color
diff --git a/pyqtgraph/opengl/items/GLGridItem.py b/pyqtgraph/opengl/items/GLGridItem.py
index 01a2b178ab02c677b5d238016c0196634fd7e0ed..2c4642c881ae952d2fbd4d21a8bdcd3e58cda0e1 100644
--- a/pyqtgraph/opengl/items/GLGridItem.py
+++ b/pyqtgraph/opengl/items/GLGridItem.py
@@ -1,6 +1,6 @@
 from OpenGL.GL import *
 from .. GLGraphicsItem import GLGraphicsItem
-from pyqtgraph import QtGui
+from ... import QtGui
 
 __all__ = ['GLGridItem']
 
diff --git a/pyqtgraph/opengl/items/GLImageItem.py b/pyqtgraph/opengl/items/GLImageItem.py
index aca68f3d7e9dddaf3017db6a8ba985b713b7b869..2cab23a39ccaba4bc4745f35400e1cf487036b1a 100644
--- a/pyqtgraph/opengl/items/GLImageItem.py
+++ b/pyqtgraph/opengl/items/GLImageItem.py
@@ -1,6 +1,6 @@
 from OpenGL.GL import *
 from .. GLGraphicsItem import GLGraphicsItem
-from pyqtgraph.Qt import QtGui
+from ...Qt import QtGui
 import numpy as np
 
 __all__ = ['GLImageItem']
diff --git a/pyqtgraph/opengl/items/GLLinePlotItem.py b/pyqtgraph/opengl/items/GLLinePlotItem.py
index 23d227c9dbbe12279b93dc11945ba5059a22b8f6..a578dd1db2297e931173abf2c866647b1e023c72 100644
--- a/pyqtgraph/opengl/items/GLLinePlotItem.py
+++ b/pyqtgraph/opengl/items/GLLinePlotItem.py
@@ -2,7 +2,7 @@ from OpenGL.GL import *
 from OpenGL.arrays import vbo
 from .. GLGraphicsItem import GLGraphicsItem
 from .. import shaders
-from pyqtgraph import QtGui
+from ... import QtGui
 import numpy as np
 
 __all__ = ['GLLinePlotItem']
diff --git a/pyqtgraph/opengl/items/GLMeshItem.py b/pyqtgraph/opengl/items/GLMeshItem.py
index 5b245e6488baa208f737cf472f4a2ff94bf020f6..14d178f883339e48fb43d01c3f8a0f9705a57fe0 100644
--- a/pyqtgraph/opengl/items/GLMeshItem.py
+++ b/pyqtgraph/opengl/items/GLMeshItem.py
@@ -1,9 +1,9 @@
 from OpenGL.GL import *
 from .. GLGraphicsItem import GLGraphicsItem
 from .. MeshData import MeshData
-from pyqtgraph.Qt import QtGui
-import pyqtgraph as pg
+from ...Qt import QtGui
 from .. import shaders
+from ... import functions as fn
 import numpy as np
 
 
@@ -177,7 +177,7 @@ class GLMeshItem(GLGraphicsItem):
                     if self.colors is None:
                         color = self.opts['color']
                         if isinstance(color, QtGui.QColor):
-                            glColor4f(*pg.glColor(color))
+                            glColor4f(*fn.glColor(color))
                         else:
                             glColor4f(*color)
                     else:
@@ -209,7 +209,7 @@ class GLMeshItem(GLGraphicsItem):
                 if self.edgeColors is None:
                     color = self.opts['edgeColor']
                     if isinstance(color, QtGui.QColor):
-                        glColor4f(*pg.glColor(color))
+                        glColor4f(*fn.glColor(color))
                     else:
                         glColor4f(*color)
                 else:
diff --git a/pyqtgraph/opengl/items/GLScatterPlotItem.py b/pyqtgraph/opengl/items/GLScatterPlotItem.py
index b02a9dda36d44addf485234e5a270a2420a9c680..9ddd3b3417352cbeeb9e92275c71300adac00244 100644
--- a/pyqtgraph/opengl/items/GLScatterPlotItem.py
+++ b/pyqtgraph/opengl/items/GLScatterPlotItem.py
@@ -2,7 +2,7 @@ from OpenGL.GL import *
 from OpenGL.arrays import vbo
 from .. GLGraphicsItem import GLGraphicsItem
 from .. import shaders
-from pyqtgraph import QtGui
+from ... import QtGui
 import numpy as np
 
 __all__ = ['GLScatterPlotItem']
diff --git a/pyqtgraph/opengl/items/GLSurfacePlotItem.py b/pyqtgraph/opengl/items/GLSurfacePlotItem.py
index 88d50facbb65009c910714f8977e85cae12aa680..9c41a878ae76ff06a21a8025f3e219b7d161c2a1 100644
--- a/pyqtgraph/opengl/items/GLSurfacePlotItem.py
+++ b/pyqtgraph/opengl/items/GLSurfacePlotItem.py
@@ -1,8 +1,7 @@
 from OpenGL.GL import *
 from .GLMeshItem import GLMeshItem
 from .. MeshData import MeshData
-from pyqtgraph.Qt import QtGui
-import pyqtgraph as pg
+from ...Qt import QtGui
 import numpy as np
 
 
diff --git a/pyqtgraph/opengl/items/GLVolumeItem.py b/pyqtgraph/opengl/items/GLVolumeItem.py
index 4980239d6b4069a2f669b31f05b6b1c28dc65fea..84f23e12186e6cc11a899a16873f458f059693ae 100644
--- a/pyqtgraph/opengl/items/GLVolumeItem.py
+++ b/pyqtgraph/opengl/items/GLVolumeItem.py
@@ -1,6 +1,6 @@
 from OpenGL.GL import *
 from .. GLGraphicsItem import GLGraphicsItem
-from pyqtgraph.Qt import QtGui
+from ...Qt import QtGui
 import numpy as np
 
 __all__ = ['GLVolumeItem']