Index: src/sas/sascalc/dataloader/manipulations.py
===================================================================
--- src/sas/sascalc/dataloader/manipulations.py	(revision 7432acb919f4013119ca918a73350297e0d4c93f)
+++ src/sas/sascalc/dataloader/manipulations.py	(revision 3e5648b0f738718f823af66d5095c1cc74103d39)
@@ -430,8 +430,8 @@
             z_max = max(data2D.q_data)
             z_min = min(data2D.q_data)
-            x_max = data2D.dqx_data[data2D.q_data[z_max]]
-            x_min = data2D.dqx_data[data2D.q_data[z_min]]
-            y_max = data2D.dqy_data[data2D.q_data[z_max]]
-            y_min = data2D.dqy_data[data2D.q_data[z_min]]
+            x_max = data2D.dqx_data[numpy.where(data2D.q_data == z_max)]
+            x_min = data2D.dqx_data[numpy.where(data2D.q_data == z_min)]
+            y_max = data2D.dqy_data[numpy.where(data2D.q_data == z_max)]
+            y_min = data2D.dqy_data[numpy.where(data2D.q_data == z_min)]
             # Find qdx at q = 0
             dq_overlap_x = (x_min * z_max - x_max * z_min) / (z_max - z_min)
@@ -785,8 +785,8 @@
             z_max = max(data2D.q_data)
             z_min = min(data2D.q_data)
-            x_max = data2D.dqx_data[data2D.q_data[z_max]]
-            x_min = data2D.dqx_data[data2D.q_data[z_min]]
-            y_max = data2D.dqy_data[data2D.q_data[z_max]]
-            y_min = data2D.dqy_data[data2D.q_data[z_min]]
+            x_max = data2D.dqx_data[numpy.where(data2D.q_data == z_max)]
+            x_min = data2D.dqx_data[numpy.where(data2D.q_data == z_min)]
+            y_max = data2D.dqy_data[numpy.where(data2D.q_data == z_max)]
+            y_min = data2D.dqy_data[numpy.where(data2D.q_data == z_min)]
             # Find qdx at q = 0
             dq_overlap_x = (x_min * z_max - x_max * z_min) / (z_max - z_min)
Index: src/sas/sasgui/guiframe/local_perspectives/plotting/Plotter2D.py
===================================================================
--- src/sas/sasgui/guiframe/local_perspectives/plotting/Plotter2D.py	(revision 7432acb919f4013119ca918a73350297e0d4c93f)
+++ src/sas/sasgui/guiframe/local_perspectives/plotting/Plotter2D.py	(revision 3e5648b0f738718f823af66d5095c1cc74103d39)
@@ -361,5 +361,6 @@
                 if self.slicer.__class__.__name__ != "BoxSum":
                     wx_id = ids.next()
-                    slicerpop.Append(wx_id, '&Edit Slicer Parameters')
+                    name = '&Edit Slicer Parameters and Batch Slicing'
+                    slicerpop.Append(wx_id, name)
                     wx.EVT_MENU(self, wx_id, self._onEditSlicer)
             slicerpop.AppendSeparator()
@@ -532,13 +533,13 @@
 
         """
-        ## Clear current slicer
+        # Clear current slicer
         if self.slicer is not None:
             self.slicer.clear()
-        ## Create a new slicer
+        # Create a new slicer
         self.slicer_z += 1
         self.slicer = slicer(self, self.subplot, zorder=self.slicer_z)
         self.subplot.set_ylim(self.data2D.ymin, self.data2D.ymax)
         self.subplot.set_xlim(self.data2D.xmin, self.data2D.xmax)
-        ## Draw slicer
+        # Draw slicer
         self.update()
         self.slicer.update()
@@ -572,5 +573,5 @@
         npt = math.floor(npt)
         from sas.sascalc.dataloader.manipulations import CircularAverage
-        ## compute the maximum radius of data2D
+        # compute the maximum radius of data2D
         self.qmax = max(math.fabs(self.data2D.xmax),
                         math.fabs(self.data2D.xmin))
@@ -578,7 +579,7 @@
                         math.fabs(self.data2D.ymin))
         self.radius = math.sqrt(math.pow(self.qmax, 2) + math.pow(self.ymax, 2))
-        ##Compute beam width
+        # Compute beam width
         bin_width = (self.qmax + self.qmax) / npt
-        ## Create data1D circular average of data2D
+        # Create data1D circular average of data2D
         Circle = CircularAverage(r_min=0, r_max=self.radius,
                                  bin_width=bin_width)
@@ -599,9 +600,9 @@
         new_plot.name = "Circ avg " + self.data2D.name
         new_plot.source = self.data2D.source
-        #new_plot.info = self.data2D.info
+        # new_plot.info = self.data2D.info
         new_plot.interactive = True
         new_plot.detector = self.data2D.detector
 
-        ## If the data file does not tell us what the axes are, just assume...
+        # If the data file does not tell us what the axes are, just assume...
         new_plot.xaxis("\\rm{Q}", "A^{-1}")
         if hasattr(self.data2D, "scale") and \
@@ -615,6 +616,5 @@
         new_plot.id = "Circ avg " + self.data2D.name
         new_plot.is_data = True
-        self.parent.update_theory(data_id=self.data2D.id, \
-                                       theory=new_plot)
+        self.parent.update_theory(data_id=self.data2D.id, theory=new_plot)
         wx.PostEvent(self.parent,
                      NewPlotEvent(plot=new_plot, title=new_plot.name))
@@ -630,5 +630,5 @@
         """
         if self.slicer is not None:
-            from SlicerParameters import SlicerParameterPanel
+            from parameters_panel_slicer import SlicerParameterPanel
             dialog = SlicerParameterPanel(self, -1, "Slicer Parameters")
             dialog.set_slicer(self.slicer.__class__.__name__,
@@ -668,5 +668,5 @@
         params = self.slicer.get_params()
         ## Create a new panel to display results of summation of Data2D
-        from slicerpanel import SlicerPanel
+        from parameters_panel_boxsum import SlicerPanel
         win = MDIFrame(self.parent, None, 'None', (100, 200))
         new_panel = SlicerPanel(parent=win, id=-1,
@@ -758,10 +758,10 @@
         if default_name.count('.') > 0:
             default_name = default_name.split('.')[0]
-        #default_name += "_out"
         if self.parent is not None:
             self.parent.show_data2d(data, default_name)
 
     def modifyGraphAppearance(self, e):
-        self.graphApp = graphAppearance(self, 'Modify graph appearance', legend=False)
+        self.graphApp = graphAppearance(self, 'Modify graph appearance',
+                                        legend=False)
         self.graphApp.setDefaults(self.grid_on, self.legend_on,
                                   self.xaxis_label, self.yaxis_label,
Index: src/sas/sasgui/guiframe/local_perspectives/plotting/parameters_panel_slicer.py
===================================================================
--- src/sas/sasgui/guiframe/local_perspectives/plotting/parameters_panel_slicer.py	(revision 3f7520319806aec1dcc6c9315e3a6982b1fac928)
+++ src/sas/sasgui/guiframe/local_perspectives/plotting/parameters_panel_slicer.py	(revision 3e5648b0f738718f823af66d5095c1cc74103d39)
@@ -14,4 +14,6 @@
 
 FIT_OPTIONS = ["No fitting", "Fitting", "Batch Fitting"]
+CONVERT_KEYS = ["SectorInteractor", "AnnulusInteractor", "BoxInteractorX",
+                "BoxInteractorY"]
 CONVERT_DICT = {"SectorInteractor": "SectorQ",
                 "AnnulusInteractor": "AnnulusPhi",
@@ -138,5 +140,5 @@
             self.bck.Add(text, (iy, ix), (1, 1),
                          wx.LEFT | wx.EXPAND | wx.ADJUST_MINSIZE, 15)
-            self.type_list = CONVERT_DICT.keys()
+            self.type_list = CONVERT_KEYS
             self.type_select = wx.ComboBox(parent=self, choices=self.type_list)
             self.type_select.Bind(wx.EVT_COMBOBOX, self.on_change_slicer)
@@ -331,4 +333,6 @@
         Populate the check list from the currently plotted 2D data
         """
+        # Reinitialize loaded data list on redraw
+        self.loaded_data = []
         # Iterate over the loaded plots and find all 2D panels
         for key, value in self.main_window.plot_panels.iteritems():
