Index: src/sas/qtgui/MainWindow/DataExplorer.py
===================================================================
--- src/sas/qtgui/MainWindow/DataExplorer.py	(revision 1420066e500f3a2a089b1768df3056a3813e207b)
+++ src/sas/qtgui/MainWindow/DataExplorer.py	(revision 88e1f57e340b062a07d1e5693c8b7b8a4edc4b32)
@@ -463,13 +463,17 @@
         Forces display of charts for the given filename
         """
-        # Assure no multiple plots for the same ID
         plot_to_show = data_list[0]
-        if plot_to_show.id in PlotHelper.currentPlots():
-            return
-
-        # Now query the model item for available plots
+
+        # passed plot is used ONLY to figure out its title,
+        # so all the charts related by it can be pulled from 
+        # the data explorer indices.
         filename = plot_to_show.filename
         model = self.model if plot_to_show.is_data else self.theory_model
+
+        # Now query the model item for available plots
         plots = GuiUtils.plotsFromFilename(filename, model)
+        item = GuiUtils.itemFromFilename(filename, model)
+
+        new_plots = []
         for plot in plots:
             plot_id = plot.id
@@ -477,5 +481,12 @@
                 self.active_plots[plot_id].replacePlot(plot_id, plot)
             else:
-                self.plotData([(None, plot)])
+                # 'sophisticated' test to generate standalone plot for residuals
+                if 'esiduals' in plot.title:
+                    self.plotData([(item, plot)])
+                else:
+                    new_plots.append((item, plot))
+
+        if new_plots:
+            self.plotData(new_plots)
 
     def addDataPlot2D(self, plot_set, item):
@@ -487,4 +498,5 @@
         plot2D.plot(plot_set)
         self.addPlot(plot2D)
+        self.active_plots[plot2D.data.id] = plot2D
         #============================================
         # Experimental hook for silx charts
@@ -507,7 +519,4 @@
         # Call show on requested plots
         # All same-type charts in one plot
-        #if isinstance(plot_set, Data1D):
-        #    new_plot = Plotter(self)
-
         for item, plot_set in plots:
             if isinstance(plot_set, Data1D):
@@ -515,4 +524,6 @@
                     new_plot = Plotter(self)
                 new_plot.plot(plot_set)
+                # active_plots may contain multiple charts
+                self.active_plots[plot_set.id] = new_plot
             elif isinstance(plot_set, Data2D):
                 self.addDataPlot2D(plot_set, item)
@@ -556,5 +567,5 @@
 
         # Update the active chart list
-        self.active_plots[new_plot.data.id] = new_plot
+        #self.active_plots[new_plot.data.id] = new_plot
 
     def appendPlot(self):
Index: src/sas/qtgui/MainWindow/UnitTesting/DataExplorerTest.py
===================================================================
--- src/sas/qtgui/MainWindow/UnitTesting/DataExplorerTest.py	(revision 464cd0702ca4f47ed61d237d9acecd5975d8abac)
+++ src/sas/qtgui/MainWindow/UnitTesting/DataExplorerTest.py	(revision f7d14a125bc33f8082b369f49924cc2c4827c4ea)
@@ -25,6 +25,6 @@
 import sas.qtgui.Plotting.PlotHelper as PlotHelper
 
-#if not QApplication.instance():
-app = QApplication(sys.argv)
+if not QApplication.instance():
+    app = QApplication(sys.argv)
 
 class DataExplorerTest(unittest.TestCase):
@@ -37,5 +37,5 @@
             def allowBatch(self):
                 return False
-            def setData(self, data_item=None):
+            def setData(self, data_item=None, is_batch=False):
                 return None
             def title(self):
@@ -170,10 +170,6 @@
 
         # Populate the model
-        #filename = ["cyl_400_20.txt", "P123_D2O_10_percent.dat", "cyl_400_20.txt"]
-        filename = ["cyl_400_20.txt", "cyl_400_20.txt", "P123_D2O_10_percent.dat"]
+        filename = ["cyl_400_20.txt", "cyl_400_20.txt", "cyl_400_20.txt"]
         self.form.readData(filename)
-
-        self.form.show()
-        app.exec_()
 
         # Assure the model contains three items
