diff --git a/vviewer/AveragePlot.py b/vviewer/AveragePlot.py
index afc83d72f0a81d1377b469c639c9a848f7a8cefb..d34859f0449c5ae4254a602b35d877fb5ebe537a 100644
--- a/vviewer/AveragePlot.py
+++ b/vviewer/AveragePlot.py
@@ -1,4 +1,4 @@
-from qt import QtGui, QtCore
+from pyqtgraph.Qt import QtGui, QtCore
 import copy
 
 import pyqtgraph as pg
diff --git a/vviewer/ColorMapWidget.py b/vviewer/ColorMapWidget.py
index 0e3fc5dd91565d212fb81d45418f716cb55738ef..fb33aab87de7a1251d6846eb41c4469a3f561da0 100644
--- a/vviewer/ColorMapWidget.py
+++ b/vviewer/ColorMapWidget.py
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-from qt import QtCore, QtGui
+from pyqtgraph.Qt import QtCore, QtGui
 #from .GraphicsView import GraphicsView
 from pyqtgraph import GraphicsView
 #from ..graphicsItems.GradientEditorItem import GradientEditorItem
diff --git a/vviewer/FunctionalDialog.py b/vviewer/FunctionalDialog.py
index 15c3539c3927f7d902925487f453b702a5976efa..5f1119c9833ad6b93aaaa657dfd99225bbfd014e 100644
--- a/vviewer/FunctionalDialog.py
+++ b/vviewer/FunctionalDialog.py
@@ -1,4 +1,4 @@
-from qt import QtCore, QtGui
+from pyqtgraph.Qt import QtCore, QtGui
 import numpy as np
 import math
 import os
diff --git a/vviewer/Image.py b/vviewer/Image.py
index f1254dc7482bf56a7a12ada8289bb5f8323b860d..c80dfdf6cc3dce2f136d06608e938c7dda6acbc0 100644
--- a/vviewer/Image.py
+++ b/vviewer/Image.py
@@ -1,5 +1,5 @@
 import sys, os.path
-from qt import QtCore, QtGui
+from pyqtgraph.Qt import QtCore, QtGui
 import numpy as np
 import numpy.ma as ma
 from nibabel import load
@@ -376,34 +376,34 @@ class Image(object):
 
         [self.image_slices_pos[0], truth] = \
             pg.mymakeARGB(
-                self.image_res[self.coord[0],:,:], lut=self.cmap_pos,
+                self.image_res[int(self.coord[0]),:,:], lut=self.cmap_pos,
                 levels=[self.threshold_pos[0], self.threshold_pos[1]],
                 useRGBA=True)
         [self.image_slices_pos[1], truth] = \
             pg.mymakeARGB(
-                self.image_res[:,self.coord[1],:], lut=self.cmap_pos,
+                self.image_res[:,int(self.coord[1]),:], lut=self.cmap_pos,
                 levels=[self.threshold_pos[0], self.threshold_pos[1]],
                 useRGBA=True)
         [self.image_slices_pos[2], truth] = \
             pg.mymakeARGB(
-                self.image_res[:,:,self.coord[2]], lut=self.cmap_pos,
+                self.image_res[:,:,int(self.coord[2])], lut=self.cmap_pos,
                 levels=[self.threshold_pos[0], self.threshold_pos[1]],
                 useRGBA=True)
 
         if self.two_cm:
             [self.image_slices_neg[0], truth] = \
                 pg.mymakeARGB(
-                    self.image_res[self.coord[0],:,:], self.cmap_neg,
+                    self.image_res[int(self.coord[0]),:,:], self.cmap_neg,
                     levels=[self.threshold_neg[0], self.threshold_neg[1]],
                     useRGBA=True)
             [self.image_slices_neg[1], truth] = \
                 pg.mymakeARGB(
-                    self.image_res[:,self.coord[1],:], self.cmap_neg,
+                    self.image_res[:,int(self.coord[1]),:], self.cmap_neg,
                     levels=[self.threshold_neg[0], self.threshold_neg[1]],
                     useRGBA=True)
             [self.image_slices_neg[2], truth] = \
                 pg.mymakeARGB(
-                    self.image_res[:,:,self.coord[2]], self.cmap_neg,
+                    self.image_res[:,:,int(self.coord[2])], self.cmap_neg,
                     levels=[self.threshold_neg[0], self.threshold_neg[1]],
                     useRGBA=True)
 
@@ -508,9 +508,10 @@ class Image(object):
         Returns the intensity at the current coordinate.
         """
         if coord is not None:
-            return self.image_res[coord[0],coord[1],coord[2]]
+            return self.image_res[int(coord[0]),int(coord[1]),int(coord[2])]
         else:
-            return self.image_res[self.coord[0],self.coord[1],self.coord[2]]
+            return self.image_res[int(self.coord[0]),int(self.coord[1]),
+                                  int(self.coord[2])]
 
     def getHistogram(self, targetHistogramSize=500):
         """
diff --git a/vviewer/Image4D.py b/vviewer/Image4D.py
index 62fb3273ba587751fd21bf3aa7ccbdf99b4e6404..446ea0e691de42ef5ce6e04f4f91ba7ce780b557 100644
--- a/vviewer/Image4D.py
+++ b/vviewer/Image4D.py
@@ -1,4 +1,4 @@
-from qt import QtCore, QtGui
+from pyqtgraph.Qt import QtCore, QtGui
 import sys
 import os.path
 import numpy as np
diff --git a/vviewer/ImageDialog.py b/vviewer/ImageDialog.py
index 0a1fb3d5769993fb7de7f59ad37fa22592dc7f99..802554aa7e23698886d98241796e49b557e12464 100644
--- a/vviewer/ImageDialog.py
+++ b/vviewer/ImageDialog.py
@@ -1,4 +1,4 @@
-from qt import QtCore, QtGui
+from pyqtgraph.Qt import QtCore, QtGui
 import pyqtgraph as pg
 import numpy as np
 import math
diff --git a/vviewer/ImageItemMod.py b/vviewer/ImageItemMod.py
index 71c2867f05bd81500b6ae2b91a11aabfcfacf8d4..d94454465346080e3eb3641270c31d89229b6094 100644
--- a/vviewer/ImageItemMod.py
+++ b/vviewer/ImageItemMod.py
@@ -1,4 +1,4 @@
-from qt import QtCore, QtGui
+from pyqtgraph.Qt import QtCore, QtGui
 import numpy as np
 import sys
 import weakref
diff --git a/vviewer/JumpSlider.py b/vviewer/JumpSlider.py
index 47ac108b149f2134d28f90cfa2d3be69dc621ef7..d3e5baa176e2667d089220cf333f57901f2a50dd 100644
--- a/vviewer/JumpSlider.py
+++ b/vviewer/JumpSlider.py
@@ -1,4 +1,4 @@
-from qt import QtCore, QtGui
+from pyqtgraph.Qt import QtCore, QtGui
 
 
 class JumpSlider(QtGui.QSlider):
diff --git a/vviewer/MosaicDialog.py b/vviewer/MosaicDialog.py
index 51b9236eab03b04a8c6274e8673d10dbef4e1dec..2a0787959c55129ff5fc9c195c9c486417c22abc 100644
--- a/vviewer/MosaicDialog.py
+++ b/vviewer/MosaicDialog.py
@@ -1,5 +1,5 @@
 import sys, os.path
-from qt import QtCore, QtGui
+from pyqtgraph.Qt import QtCore, QtGui
 import numpy as np
 import math
 import os
diff --git a/vviewer/MosaicSliceBox.py b/vviewer/MosaicSliceBox.py
index bad05b1f4ad40d2fd6d46c9edfe6b23346d99794..cee0358532aae17589257e7f71301c0861c9c3a9 100644
--- a/vviewer/MosaicSliceBox.py
+++ b/vviewer/MosaicSliceBox.py
@@ -3,7 +3,7 @@ This is needed for the MosaicView.
 It is similar to the SliceBox but zooms to the cursor position.
 """
 
-from qt import QtCore, QtGui
+from pyqtgraph.Qt import QtCore, QtGui
 import numpy as np
 import sys
 
diff --git a/vviewer/MosaicView.py b/vviewer/MosaicView.py
index 87e6ac72d93a379975de85bbdd5809c10a11703f..b544017c65dc72d5eb544978a3fe667256856466 100644
--- a/vviewer/MosaicView.py
+++ b/vviewer/MosaicView.py
@@ -1,6 +1,6 @@
 import sys
 import os.path
-from qt import QtCore, QtGui
+from pyqtgraph.Qt import QtCore, QtGui
 import numpy as np
 import math
 import os
diff --git a/vviewer/SettingsDialog.py b/vviewer/SettingsDialog.py
index 3348bf78aea88bebcef3c4109d0f5aa9c9ceeea6..762ffeb09a47a26fc99e832a70959f6ae24c5826 100644
--- a/vviewer/SettingsDialog.py
+++ b/vviewer/SettingsDialog.py
@@ -1,4 +1,4 @@
-from qt import QtCore, QtGui
+from pyqtgraph.Qt import QtCore, QtGui
 import numpy as np
 import math
 import os
diff --git a/vviewer/SingleSlice.py b/vviewer/SingleSlice.py
index f694e684a0ccd66a477f2fc3a3b2f2cbef8fc49a..bab82a34fe234911d5fc96f7b857cde24f433495 100644
--- a/vviewer/SingleSlice.py
+++ b/vviewer/SingleSlice.py
@@ -1,6 +1,6 @@
 import sys
 import os.path
-from qt import QtCore, QtGui
+from pyqtgraph.Qt import QtCore, QtGui
 import numpy as np
 import math
 import os
diff --git a/vviewer/SliceBox.py b/vviewer/SliceBox.py
index 7087661267eab92beeead49cac9a96c588d06f91..749f6f8c91af3bb3db25ce96f225c9b14e82dfde 100644
--- a/vviewer/SliceBox.py
+++ b/vviewer/SliceBox.py
@@ -1,4 +1,4 @@
-from qt import QtCore, QtGui
+from pyqtgraph.Qt import QtCore, QtGui
 import numpy as np
 import pyqtgraph as pg
 import sys
diff --git a/vviewer/SliceWidget.py b/vviewer/SliceWidget.py
index c02052f444464c4c3dc3ca4b34d891b2bd16ddb2..4a4329cceb3309ba7110d7ec8a62b57c26c77f8e 100644
--- a/vviewer/SliceWidget.py
+++ b/vviewer/SliceWidget.py
@@ -1,4 +1,4 @@
-from qt import QtCore, QtGui
+from pyqtgraph.Qt import QtCore, QtGui
 import sys
 import numpy as np
 import weakref
@@ -189,7 +189,7 @@ class SliceWidget(pg.GraphicsLayoutWidget):
         """
         self.image_dimensions = dimensions
         self.foreground.setImage(
-            np.zeros((self.image_dimensions[0],self.image_dimensions[1],4)))
+            np.zeros((np.int(self.image_dimensions[0]),np.int(self.image_dimensions[1]),4)))
 
     def addImageItem(self, image_item):
         """
diff --git a/vviewer/SliceWindow.py b/vviewer/SliceWindow.py
index 212e80d440c70107c43afd3bbb7ff1d161be4f68..200f3dc479191f4ea7f2fcc301ca28490779d59b 100644
--- a/vviewer/SliceWindow.py
+++ b/vviewer/SliceWindow.py
@@ -1,4 +1,4 @@
-from qt import QtCore, QtGui
+from pyqtgraph.Qt import QtCore, QtGui
 import numpy as np
 import math
 import os
diff --git a/vviewer/ValueWindow.py b/vviewer/ValueWindow.py
index 3574a5be9bf439f1c56e0278806d7b23906e760f..e182c587d5db3ea47f1e185d12586078295ecefb 100644
--- a/vviewer/ValueWindow.py
+++ b/vviewer/ValueWindow.py
@@ -1,4 +1,4 @@
-from qt import QtCore, QtGui
+from pyqtgraph.Qt import QtCore, QtGui
 import numpy as np
 import math
 import os
diff --git a/vviewer/loadImage.py b/vviewer/loadImage.py
index 316c1f2af76f925515684f76a5a3c903e4c32e63..165881dc9cd309a2c9f35dfe7db6acecc3b6c367 100644
--- a/vviewer/loadImage.py
+++ b/vviewer/loadImage.py
@@ -6,7 +6,7 @@ It takes loading preferences and a filename and gives back the correct image cla
 
 import sys
 import os.path
-from qt import QtCore, QtGui
+from pyqtgraph.Qt import QtCore, QtGui
 import numpy as np
 from nibabel import load
 from nibabel.affines import apply_affine
diff --git a/vviewer/python2_3.py b/vviewer/python2_3.py
new file mode 100644
index 0000000000000000000000000000000000000000..ae4667ebd472195d8ae8e78e75328bb8e39a572a
--- /dev/null
+++ b/vviewer/python2_3.py
@@ -0,0 +1,58 @@
+"""
+Helper functions that smooth out the differences between python 2 and 3.
+"""
+import sys
+
+def asUnicode(x):
+    if sys.version_info[0] == 2:
+        if isinstance(x, unicode):
+            return x
+        elif isinstance(x, str):
+            return x.decode('UTF-8')
+        else:
+            return unicode(x)
+    else:
+        return str(x)
+        
+def cmpToKey(mycmp):
+    'Convert a cmp= function into a key= function'
+    class K(object):
+        def __init__(self, obj, *args):
+            self.obj = obj
+        def __lt__(self, other):
+            return mycmp(self.obj, other.obj) < 0
+        def __gt__(self, other):
+            return mycmp(self.obj, other.obj) > 0
+        def __eq__(self, other):
+            return mycmp(self.obj, other.obj) == 0
+        def __le__(self, other):
+            return mycmp(self.obj, other.obj) <= 0
+        def __ge__(self, other):
+            return mycmp(self.obj, other.obj) >= 0
+        def __ne__(self, other):
+            return mycmp(self.obj, other.obj) != 0
+    return K
+
+def sortList(l, cmpFunc):
+    if sys.version_info[0] == 2:
+        l.sort(cmpFunc)
+    else:
+        l.sort(key=cmpToKey(cmpFunc))
+
+if sys.version_info[0] == 3:
+    basestring = str
+    def cmp(a,b):
+        if a>b:
+            return 1
+        elif b > a:
+            return -1
+        else:
+            return 0
+    xrange = range
+else:
+    import __builtin__
+    basestring = __builtin__.basestring
+    cmp = __builtin__.cmp
+    xrange = __builtin__.xrange
+    
+    
\ No newline at end of file
diff --git a/vviewer/qt_console_widget.py b/vviewer/qt_console_widget.py
index 1900138ca6004542889b996fdcfed75370476954..a9219f96d65053b9bb3e2aa7d8b016a46b2f62d7 100644
--- a/vviewer/qt_console_widget.py
+++ b/vviewer/qt_console_widget.py
@@ -1,7 +1,7 @@
 
 from qtconsole.rich_jupyter_widget import RichJupyterWidget
 from qtconsole.inprocess import QtInProcessKernelManager
-from qt import QtCore, QtGui
+from pyqtgraph.Qt import QtCore, QtGui
 
 
 class JupyterWidget(RichJupyterWidget):
diff --git a/vviewer/vviewer.py b/vviewer/vviewer.py
index ac357cdf4f50851acd3d9bb9e654b9513736fa1e..c7ce789488936dd0152ac605873258714c279558 100755
--- a/vviewer/vviewer.py
+++ b/vviewer/vviewer.py
@@ -25,7 +25,8 @@ by these sections:
 ## Section: Closing the Viewer ##
 """
 
-from qt import QtCore, QtGui
+from pyqtgraph.Qt import QtCore, QtGui
+#from qt import QtCore, QtGui
 import numpy as np
 import math
 import os