diff --git a/modules/gui/pymod/dng/superpositiondialog.py b/modules/gui/pymod/dng/superpositiondialog.py
index 8940430074b0490587566e123132d581ec4b7f80..96c7ebe37284fb84ce881625807f951938f14711 100644
--- a/modules/gui/pymod/dng/superpositiondialog.py
+++ b/modules/gui/pymod/dng/superpositiondialog.py
@@ -55,8 +55,9 @@ class ChainComboBox(QtWidgets.QComboBox):
     if gfx:
       self.gfx = gfx
 
-  def _HighlightChain(self, chain):
-    if str(chain) != 'All':
+  def _HighlightChain(self, chain_idx):
+    chain = self.itemText(chain_idx)
+    if chain != 'All':
       self.gfx.SetSelection(self.entity.Select('cname="%s"' % str(chain)))
     else:
       self.gfx.SetSelection(self.entity.Select(''))
@@ -130,7 +131,7 @@ class SuperpositionDialog(QtWidgets.QDialog):
     self.gfx_select_one = None
     self.gfx_select_two = None
     QtWidgets.QDialog.__init__(self, parent)
-    self.setWindowTitle('Superpose structures')
+    self.setWindowTitle('Superpose Structures')
     if not isinstance(ent_one, mol.EntityHandle) and \
        not isinstance(ent_one, mol.EntityView):
       n_one = ent_one.GetName()
@@ -162,28 +163,28 @@ class SuperpositionDialog(QtWidgets.QDialog):
     if n_one == n_two:
       n_one = n_one + ' 1'
       n_two = n_two + ' 2' 
-    layout = QGridLayout(self)
+    layout = QtWidgets.QGridLayout(self)
     # select reference molecule
     self.reference = 0;
     self._reference = self._ReferenceSelection(n_one, n_two)
     grow = 0
-    layout.addWidget(QLabel("reference"), grow, 0)
+    layout.addWidget(QtWidgets.QLabel("reference"), grow, 0)
     layout.addWidget(self._reference, grow, 1)
     grow += 1
     # chains
     self._chain_one = ChainComboBox(self.ent_one, self.gfx_one, self)
     self._chain_two = ChainComboBox(self.ent_two, self.gfx_two, self)
-    layout.addWidget(QLabel("reference chain"), grow, 0)
+    layout.addWidget(QtWidgets.QLabel("reference chain"), grow, 0)
     layout.addWidget(self._chain_one, grow, 1)
     grow += 1
-    layout.addWidget(QLabel("chain"), grow, 0)
+    layout.addWidget(QtWidgets.QLabel("chain"), grow, 0)
     layout.addWidget(self._chain_two, grow, 1)
     grow += 1
     # link chain and reference selection
     self._reference.currentIndexChanged.connect(self._ChangeChainSelection)
     # match methods
     self._methods = self._MatchMethods()
-    layout.addWidget(QLabel('match residues by'), grow, 0)
+    layout.addWidget(QtWidgets.QLabel('match residues by'), grow, 0)
     grow += 1
     layout.addWidget(self._methods)
 
@@ -199,10 +200,10 @@ class SuperpositionDialog(QtWidgets.QDialog):
     layout.addWidget(self._atmselectbx, grow, 1)
     grow += 1
     # buttons
-    ok_button = QPushButton("Superpose")
+    ok_button = QtWidgets.QPushButton("Superpose")
     ok_button.clicked.connect(self.accept)
-    cancel_button = QPushButton("Cancel")
-    hbox_layout = QHBoxLayout()
+    cancel_button = QtWidgets.QPushButton("Cancel")
+    hbox_layout = QtWidgets.QHBoxLayout()
     hbox_layout.addStretch(1)
     layout.addLayout(hbox_layout, grow, 0, 1, 2)
     grow += 1
@@ -222,10 +223,13 @@ class SuperpositionDialog(QtWidgets.QDialog):
     view_one = self._chain_one.selected_chain
     view_two = self._chain_two.selected_chain
     atoms = self._GetAtomSelection()
+    print "atoms:", atoms
+    print "view lengths:", len(view_one.atoms), len(view_two.atoms)
     sp = Superpose(view_two, view_one,
                    self._mmethod_dict[str(self._methods.currentText())],
                    atoms, iterative=self._iterative, 
-                   max_iterations=self._it_in.value(), distance_threshold=self._dist_in.value())
+                   max_iterations=self._it_in.value(), 
+                   distance_threshold=self._dist_in.value())
     self.rmsd = sp.rmsd
     if self._iterative:
       self.rmsd_superposed_atoms = sp.rmsd_superposed_atoms
@@ -238,25 +242,25 @@ class SuperpositionDialog(QtWidgets.QDialog):
       self._atoms.setEnabled(False)
 
   def _AtomSelectionBox(self):
-    bt1 = QRadioButton('All')
-    bt2 = QRadioButton('Backbone')
-    bt3 = QRadioButton('CA')
+    bt1 = QtWidgets.QRadioButton('All')
+    bt2 = QtWidgets.QRadioButton('Backbone')
+    bt3 = QtWidgets.QRadioButton('CA')
     self.cstmbtntxt = 'Custom'
-    custom_rbutton = QRadioButton(self.cstmbtntxt)
-    group = QButtonGroup()
+    custom_rbutton = QtWidgets.QRadioButton(self.cstmbtntxt)
+    group = QtWidgets.QButtonGroup()
     group.addButton(bt1)
     group.addButton(bt2)
     group.addButton(bt3)
     group.addButton(custom_rbutton)
     bt1.setChecked(True)
-    vbox_layout = QVBoxLayout()
+    vbox_layout = QtWidgets.QVBoxLayout()
     vbox_layout.addWidget(bt1)
     vbox_layout.addWidget(bt2)
     vbox_layout.addWidget(bt3)
     vbox_layout.addWidget(custom_rbutton)
     vbox_layout.addWidget(self._atoms)
     custom_rbutton.toggled.connect(self._toggle_atoms)
-    box = QGroupBox("atom selection")
+    box = QtWidgets.QGroupBox("atom selection")
     box.setLayout(vbox_layout)
     return box, group
 
@@ -280,22 +284,22 @@ class SuperpositionDialog(QtWidgets.QDialog):
     for atm in ent_b.GetAtomList():
       if atm.name in atm_dict:
         atm_dict[atm.name] = 1
-    atmlst = QStringList()
+    atmlst = list()
     for atm in sorted(atm_dict.keys()):
       if atm_dict[atm]:
         atmlst.append(atm)
-    elems = QStringListModel(atmlst)
-    atoms = QListView(self)
+    elems = QtCore.QStringListModel(atmlst)
+    atoms = QtWidgets.QListView(self)
     dim.setHeight(3*dim.height())
     atoms.setFixedSize(dim)
     atoms.setModel(elems)
-    atoms.setSelectionMode(QAbstractItemView.MultiSelection)
-    atoms.setEditTriggers(QAbstractItemView.NoEditTriggers)
+    atoms.setSelectionMode(QtWidgets.QAbstractItemView.MultiSelection)
+    atoms.setEditTriggers(QtWidgets.QAbstractItemView.NoEditTriggers)
     atoms.setEnabled(False)
     return atoms
 
   def _ReferenceSelection(self, name_a, name_b):
-    cbox = QComboBox()
+    cbox = QtWidgets.QComboBox()
     cbox.addItem(name_a)
     cbox.addItem(name_b)
     if cbox.count() > 0:
@@ -313,13 +317,13 @@ class SuperpositionDialog(QtWidgets.QDialog):
       self._iterative=False
 
   def _ItBox(self):
-    bt1 = QRadioButton("On")
-    iteration_label=QLabel("Max Iterations: ")
-    distance_label=QLabel("Dist Thresh: ")
-    iteration_in=QSpinBox()
+    bt1 = QtWidgets.QRadioButton("On")
+    iteration_label=QtWidgets.QLabel("Max Iterations: ")
+    distance_label=QtWidgets.QLabel("Dist Thresh: ")
+    iteration_in=QtWidgets.QSpinBox()
     iteration_in.setRange(1,30)
     iteration_in.setValue(8)
-    distance_in=QDoubleSpinBox()
+    distance_in=QtWidgets.QDoubleSpinBox()
     distance_in.setRange(1.0,10.0)
     distance_in.setValue(3.0)
     distance_in.setDecimals(1)
@@ -328,7 +332,7 @@ class SuperpositionDialog(QtWidgets.QDialog):
     distance_in.setEnabled(False)
     bt1.setChecked(False)
     self._iterative=False
-    vbox_layout = QVBoxLayout()
+    vbox_layout = QtWidgets.QVBoxLayout()
     vbox_layout.addWidget(bt1)
     vbox_layout.addWidget(iteration_label)
     vbox_layout.addWidget(iteration_in)
@@ -336,7 +340,7 @@ class SuperpositionDialog(QtWidgets.QDialog):
     vbox_layout.addWidget(distance_in)
     vbox_layout.addSpacing(50)
     bt1.toggled.connect(self._toggle_iterative)
-    box = QGroupBox("Iterative")
+    box = QtWidgets.QGroupBox("Iterative")
     box.setLayout(vbox_layout)
     return box,iteration_in, distance_in
 
@@ -351,7 +355,7 @@ class SuperpositionDialog(QtWidgets.QDialog):
       self.reference = 1;
 
   def _MatchMethods(self):
-    methods=QComboBox(self)
+    methods=QtWidgets.QComboBox(self)
     for method in sorted(self._mmethod_dict):
       methods.addItem(method)
     return methods