Index: calculatorview/src/sans/perspectives/calculator/data_operator.py
===================================================================
--- calculatorview/src/sans/perspectives/calculator/data_operator.py	(revision dd2ab7004b7fc08d33264885fd8a968a1b62f901)
+++ calculatorview/src/sans/perspectives/calculator/data_operator.py	(revision 90537799bd9385475298b825a59cb80b2d8f7012)
@@ -453,32 +453,37 @@
                 val = None
         self.data2_cbox.SetClientData(pos3, val)
-        dnames = [dstate.data.name for dstate in self._data.values()]
-        ind = numpy.argsort(dnames)
-        for datastate in numpy.array(self._data.values())[ind]:
-            data = datastate.data
-            if data != None:
-                name = data.name
-                pos1 = self.data1_cbox.Append(str(name))
-                self.data1_cbox.SetClientData(pos1, data)
-                pos2 = self.data2_cbox.Append(str(name))
-                self.data2_cbox.SetClientData(pos2, data)
-                if str(current1) == str(name):
-                  pos_pre1 = pos1 
-                if str(current2) == str(name):
-                  pos_pre2 = pos2
-            try:
-                theory_list = datastate.get_theory()
-                for theory, _ in theory_list.values():
-                    th_name = theory.name
-                    posth1 = self.data1_cbox.Append(str(th_name))
-                    self.data1_cbox.SetClientData(posth1, theory)
-                    posth2 = self.data2_cbox.Append(str(th_name))
-                    self.data2_cbox.SetClientData(posth2, theory)
-                    if str(current1) == str(th_name):
-                        pos_pre1 = posth1
-                    if str(current2) == str(th_name):
-                        pos_pre2 = posth2
-            except:
-                continue 
+        dnames = []
+        for dstate in self._data.values():
+            if dstate != None:
+                if dstate.data != None:
+                    dnames.append(dstate.data.name)
+        if len(dnames) > 0:
+            ind = numpy.argsort(dnames)
+            for datastate in numpy.array(self._data.values())[ind]:
+                data = datastate.data
+                if data != None:
+                    name = data.name
+                    pos1 = self.data1_cbox.Append(str(name))
+                    self.data1_cbox.SetClientData(pos1, data)
+                    pos2 = self.data2_cbox.Append(str(name))
+                    self.data2_cbox.SetClientData(pos2, data)
+                    if str(current1) == str(name):
+                      pos_pre1 = pos1 
+                    if str(current2) == str(name):
+                      pos_pre2 = pos2
+                try:
+                    theory_list = datastate.get_theory()
+                    for theory, _ in theory_list.values():
+                        th_name = theory.name
+                        posth1 = self.data1_cbox.Append(str(th_name))
+                        self.data1_cbox.SetClientData(posth1, theory)
+                        posth2 = self.data2_cbox.Append(str(th_name))
+                        self.data2_cbox.SetClientData(posth2, theory)
+                        if str(current1) == str(th_name):
+                            pos_pre1 = posth1
+                        if str(current2) == str(th_name):
+                            pos_pre2 = posth2
+                except:
+                    continue 
         self.data1_cbox.SetSelection(pos_pre1)
         self.data2_cbox.SetSelection(pos_pre2)
Index: sansguiframe/src/sans/guiframe/dataFitting.py
===================================================================
--- sansguiframe/src/sans/guiframe/dataFitting.py	(revision fdef9563608c6006d6571f2ac9b6e89cd3472abe)
+++ sansguiframe/src/sans/guiframe/dataFitting.py	(revision 90537799bd9385475298b825a59cb80b2d8f7012)
@@ -445,5 +445,5 @@
                          q_data=None, err_image=None, xmin=None, xmax=None,
                          ymin=None, ymax=None, zmin=None, zmax=None)
-        result.clone_without_data(len(self.data), self)
+        result.clone_without_data(len(self.data))
         result.copy_from_datainfo(data2d=self)
         result.xmin = self.xmin
@@ -509,5 +509,5 @@
         length = len(self.data)
         tot_length = length + len(other.data)
-        result.clone_without_data(tot_length, self)
+        result.clone_without_data(tot_length)
         result.xmin = self.xmin
         result.xmax = self.xmax
