Index: src/sas/sascalc/dataloader/file_reader_base_class.py
===================================================================
--- src/sas/sascalc/dataloader/file_reader_base_class.py	(revision a78433dd9e49c90c633ff982dc5fb97199a5f55e)
+++ src/sas/sascalc/dataloader/file_reader_base_class.py	(revision 248ff7332a99edb391f42db2a242a497473df452)
@@ -66,13 +66,12 @@
                     if not self.f_open.closed:
                         self.f_open.close()
+                    if len(self.output) > 0:
+                        # Sort the data that's been loaded
+                        self.sort_one_d_data()
+                        self.sort_two_d_data()
         else:
             msg = "Unable to find file at: {}\n".format(filepath)
             msg += "Please check your file path and try again."
             self.handle_error_message(msg)
-
-        if isinstance(self.output[0], Data1D):
-            self.sort_one_d_data()
-        elif isinstance(self.output[0], Data2D):
-            self.sort_two_d_data()
 
         # Return a list of parsed entries that data_loader can manage
@@ -122,11 +121,11 @@
                 if data.dlam is not None:
                     data.dlam = np.asarray([data.dlam[i] for i in ind]).astype(np.float64)
-                data.xmin = np.min(data.x)
-                data.xmax = np.max(data.x)
-                data.ymin = np.min(data.y)
-                data.ymax = np.max(data.y)
-            final_list.append(data)
-        self.output = final_list
-        self.remove_empty_q_values()
+                if len(data.x > 0):
+                    data.xmin = np.min(data.x)
+                    data.xmax = np.max(data.x)
+                    data.ymin = np.min(data.y)
+                    data.ymax = np.max(data.y)
+        #     final_list.append(data)
+        # self.output = final_list
 
     def sort_two_d_data(self):
@@ -157,6 +156,6 @@
                     dataset.x_bins = dataset.qx_data[:int(n_cols)]
                 dataset.data = dataset.data.flatten()
-                final_list.append(dataset)
-        self.output = final_list
+        #         final_list.append(dataset)
+        # self.output = final_list
 
     def set_all_to_none(self):
Index: src/sas/sascalc/dataloader/readers/associations.py
===================================================================
--- src/sas/sascalc/dataloader/readers/associations.py	(revision 371b9e2fdd394f51668cf12a42d9872e6f8698d8)
+++ src/sas/sascalc/dataloader/readers/associations.py	(revision 248ff7332a99edb391f42db2a242a497473df452)
@@ -37,5 +37,5 @@
     Read the specified settings file to associate
     default readers to file extension.
-    
+
     :param loader: Loader object
     :param settings: path to the json settings file [string]
Index: src/sas/sascalc/dataloader/readers/cansas_reader.py
===================================================================
--- src/sas/sascalc/dataloader/readers/cansas_reader.py	(revision 0615d54bd43de8a55f997491bdd306bd54aeb4d8)
+++ src/sas/sascalc/dataloader/readers/cansas_reader.py	(revision 248ff7332a99edb391f42db2a242a497473df452)
@@ -130,5 +130,10 @@
                 self.current_datainfo.meta_data[PREPROCESS] = self.processing_instructions
                 self._parse_entry(entry)
-                self.send_to_output() # Combune datasets with DataInfo
+                has_error_dx = self.current_dataset.dx is not None
+                has_error_dy = self.current_dataset.dy is not None
+                self.remove_empty_q_values(has_error_dx=has_error_dx,
+                    has_error_dy=has_error_dy)
+                self.send_to_output() # Combine datasets with DataInfo
+                self.current_datainfo = DataInfo() # Reset DataInfo
         except FileContentsException as fc_exc:
             # File doesn't meet schema - try loading with a less strict schema
@@ -215,6 +220,4 @@
             self.current_dataset = plottable_1D(np.empty(0), np.empty(0),
                 np.empty(0), np.empty(0))
-            self.current_dataset.dxl = np.empty(0)
-            self.current_dataset.dxw = np.empty(0)
         self.base_ns = "{" + CANSAS_NS.get(self.cansas_version).get("ns") + "}"
 
@@ -295,6 +298,8 @@
                     self.current_dataset.dx = np.append(self.current_dataset.dx, data_point)
                 elif tagname == 'dQw':
+                    if self.current_dataset.dqw is None: self.current_dataset.dqw = np.empty(0)
                     self.current_dataset.dxw = np.append(self.current_dataset.dxw, data_point)
                 elif tagname == 'dQl':
+                    if self.current_dataset.dxl is None: self.current_dataset.dxl = np.empty(0)
                     self.current_dataset.dxl = np.append(self.current_dataset.dxl, data_point)
                 elif tagname == 'Qmean':
