Index: src/sas/qtgui/Perspectives/Fitting/FittingLogic.py
===================================================================
--- src/sas/qtgui/Perspectives/Fitting/FittingLogic.py	(revision d6e3866160051b03e5bdb581acf0fd2227b090b4)
+++ src/sas/qtgui/Perspectives/Fitting/FittingLogic.py	(revision 87dfca4108319b9f2e8294ec16eebae1042a3693)
@@ -16,6 +16,11 @@
         self._data = data
         self.data_is_loaded = False
+        #dq data presence in the dataset
+        self.dq_flag = False
+        #di data presence in the dataset
+        self.di_flag = False
         if data is not None:
             self.data_is_loaded = True
+            self.setDataProperties()
 
     @property
@@ -28,8 +33,27 @@
         self._data = value
         self.data_is_loaded = True
+        self.setDataProperties()
 
     def isLoadedData(self):
         """ accessor """
         return self.data_is_loaded
+
+    def setDataProperties(self):
+        """
+        Analyze data and set up some properties important for
+        the Presentation layer
+        """
+        if self._data.__class__.__name__ == "Data2D":
+            if self._data.err_data is not None and np.any(self._data.err_data):
+                self.di_flag = True
+            if self._data.dqx_data is not None and np.any(self._data.dqx_data):
+                self.dq_flag = True
+        else:
+            if self._data.dy is not None and np.any(self._data.dy):
+                self.di_flag = True
+            if self._data.dx is not None and np.any(self._data.dx):
+                self.dq_flag = True
+            elif self._data.dxl is not None and np.any(self._data.dxl):
+                self.dq_flag = True
 
     def createDefault1dData(self, interval, tab_id=0):
Index: src/sas/qtgui/Perspectives/Fitting/FittingWidget.py
===================================================================
--- src/sas/qtgui/Perspectives/Fitting/FittingWidget.py	(revision 57be490d989c9a52dd3d902191267a861890a9ef)
+++ src/sas/qtgui/Perspectives/Fitting/FittingWidget.py	(revision 87dfca4108319b9f2e8294ec16eebae1042a3693)
@@ -177,9 +177,13 @@
 
         # Create logics with data items
-        self._logic=[]
         # Logics.data contains only a single Data1D/Data2D object
-        for data_item in value:
-            self._logic.append(FittingLogic())
-            self._logic[-1].data = GuiUtils.dataFromItem(data_item)
+        if len(value) == 1:
+            # single data logic is already defined, update data on it
+            self._logic[0].data = GuiUtils.dataFromItem(value[0])
+        else:
+            # batch datasets
+            for data_item in value:
+                logic = FittingLogic(data=GuiUtils.dataFromItem(data_item))
+                self._logic.append(logic)
 
         # Overwrite data type descriptor
Index: src/sas/qtgui/Perspectives/Fitting/OptionsWidget.py
===================================================================
--- src/sas/qtgui/Perspectives/Fitting/OptionsWidget.py	(revision 976978b3f089803c3bfea3ba57e611f9e52d2796)
+++ src/sas/qtgui/Perspectives/Fitting/OptionsWidget.py	(revision 87dfca4108319b9f2e8294ec16eebae1042a3693)
@@ -163,22 +163,10 @@
         self.chkLogData.setEnabled(False)
         # Weighting controls
-        if isinstance(self.logic.data, Data2D):
-            if self.logic.data.err_data is None or\
-                    np.all(err == 1 for err in self.logic.data.err_data) or \
-                    not np.any(self.logic.data.err_data):
-                self.rbWeighting2.setEnabled(False)
-                self.rbWeighting1.setChecked(True)
-            else:
-                self.rbWeighting2.setEnabled(True)
-                self.rbWeighting2.setChecked(True)
+        if self.logic.di_flag:
+            self.rbWeighting2.setEnabled(True)
+            self.rbWeighting2.setChecked(True)
         else:
-            if self.logic.data.dy is None or\
-                    np.all(self.logic.data.dy == 1) or\
-                    not np.any(self.logic.data.dy):
-                self.rbWeighting2.setEnabled(False)
-                self.rbWeighting1.setChecked(True)
-            else:
-                self.rbWeighting2.setEnabled(True)
-                self.rbWeighting2.setChecked(True)
+            self.rbWeighting2.setEnabled(False)
+            self.rbWeighting1.setChecked(True)
 
     def updateQRange(self, q_range_min, q_range_max, npts):
