Index: src/sas/sasgui/perspectives/calculator/model_editor.py
===================================================================
--- src/sas/sasgui/perspectives/calculator/model_editor.py	(revision a1b8fee73528559155793dd74cda07d0c32e9d72)
+++ src/sas/sasgui/perspectives/calculator/model_editor.py	(revision 07ec7146964cd515d342af9cf28572e1930bfe86)
@@ -643,4 +643,5 @@
         self.name_hsizer = None
         self.name_tcl = None
+        self.overwrite_cb = None
         self.desc_sizer = None
         self.desc_tcl = None
@@ -657,5 +658,5 @@
         self.warning = ""
         #This does not seem to be used anywhere so commenting out for now
-        #    -- PDB 2/26/17 
+        #    -- PDB 2/26/17
         #self._description = "New Plugin Model"
         self.function_tcl = None
@@ -689,8 +690,8 @@
         #title name [string]
         name_txt = wx.StaticText(self, -1, 'Function Name : ')
-        overwrite_cb = wx.CheckBox(self, -1, "Overwrite existing plugin model of this name?", (10, 10))
-        overwrite_cb.SetValue(False)
-        overwrite_cb.SetToolTipString("Overwrite it if already exists?")
-        wx.EVT_CHECKBOX(self, overwrite_cb.GetId(), self.on_over_cb)
+        self.overwrite_cb = wx.CheckBox(self, -1, "Overwrite existing plugin model of this name?", (10, 10))
+        self.overwrite_cb.SetValue(False)
+        self.overwrite_cb.SetToolTipString("Overwrite it if already exists?")
+        wx.EVT_CHECKBOX(self, self.overwrite_cb.GetId(), self.on_over_cb)
         self.name_tcl = wx.TextCtrl(self, -1, size=(PANEL_WIDTH * 3 / 5, -1))
         self.name_tcl.Bind(wx.EVT_TEXT_ENTER, self.on_change_name)
@@ -700,5 +701,5 @@
         self.name_tcl.SetToolTipString(hint_name)
         self.name_hsizer.AddMany([(self.name_tcl, 0, wx.LEFT | wx.TOP, 0),
-                                  (overwrite_cb, 0, wx.LEFT, 20)])
+                                  (self.overwrite_cb, 0, wx.LEFT, 20)])
         self.name_sizer.AddMany([(name_txt, 0, wx.LEFT | wx.TOP, 10),
                                  (self.name_hsizer, 0,
@@ -740,5 +741,5 @@
         self.param_sizer.AddMany([(param_txt, 0, wx.LEFT, 10),
                                   (self.param_tcl, 1, wx.EXPAND | wx.ALL, 10)])
-        
+
         # Parameters with polydispersity
         pd_param_txt = wx.StaticText(self, -1, 'Fit Parameters requiring ' + \
@@ -755,5 +756,5 @@
         self.pd_param_tcl.setDisplayLineNumbers(True)
         self.pd_param_tcl.SetToolTipString(pd_param_tip)
-        
+
         self.param_sizer.AddMany([(pd_param_txt, 0, wx.LEFT, 10),
                                   (self.pd_param_tcl, 1, wx.EXPAND | wx.ALL, 10)])
@@ -995,4 +996,6 @@
             info = 'Error'
             color = 'red'
+            self.overwrite_cb.SetValue(True)
+            self.overwrite_name = True
         else:
             self._notes = result
@@ -1030,12 +1033,12 @@
         if has_scipy:
             lines.insert(0, 'import scipy')
-        
-        # Think about 2D later        
+
+        # Think about 2D later
         #self.is_2d = func_str.count("#self.ndim = 2")
         #line_2d = ''
         #if self.is_2d:
         #    line_2d = CUSTOM_2D_TEMP.split('\n')
-        
-        # Also think about test later        
+
+        # Also think about test later
         #line_test = TEST_TEMPLATE.split('\n')
         #local_params = ''
@@ -1043,5 +1046,5 @@
         spaces4  = ' '*4
         spaces13 = ' '*13
-        spaces16 = ' '*16     
+        spaces16 = ' '*16
         param_names = []    # to store parameter names
         has_scipy = func_str.count("scipy.")
@@ -1055,9 +1058,9 @@
             out_f.write(line + '\n')
             if line.count('#name'):
-                out_f.write('name = "%s" \n' % name)               
+                out_f.write('name = "%s" \n' % name)
             elif line.count('#title'):
-                out_f.write('title = "User model for %s"\n' % name)               
+                out_f.write('title = "User model for %s"\n' % name)
             elif line.count('#description'):
-                out_f.write('description = "%s"\n' % desc_str)               
+                out_f.write('description = "%s"\n' % desc_str)
             elif line.count('#parameters'):
                 out_f.write('parameters = [ \n')
@@ -1065,15 +1068,15 @@
                     p_line = param_line.lstrip().rstrip()
                     if p_line:
-                        pname, pvalue = self.get_param_helper(p_line)
+                        pname, pvalue, desc = self.get_param_helper(p_line)
                         param_names.append(pname)
-                        out_f.write("%s['%s', '', %s, [-numpy.inf, numpy.inf], '', ''],\n" % (spaces16, pname, pvalue))
+                        out_f.write("%s['%s', '', %s, [-numpy.inf, numpy.inf], '', '%s'],\n" % (spaces16, pname, pvalue, desc))
                 for param_line in pd_param_str.split('\n'):
                     p_line = param_line.lstrip().rstrip()
                     if p_line:
-                        pname, pvalue = self.get_param_helper(p_line)
+                        pname, pvalue, desc = self.get_param_helper(p_line)
                         param_names.append(pname)
-                        out_f.write("%s['%s', '', %s, [-numpy.inf, numpy.inf], 'volume', ''],\n" % (spaces16, pname, pvalue))
+                        out_f.write("%s['%s', '', %s, [-numpy.inf, numpy.inf], 'volume', '%s'],\n" % (spaces16, pname, pvalue, desc))
                 out_f.write('%s]\n' % spaces13)
-            
+
         # No form_volume or ER available in simple model editor
         out_f.write('def form_volume(*arg): \n')
@@ -1082,5 +1085,5 @@
         out_f.write('def ER(*arg): \n')
         out_f.write('    return 1.0 \n')
-        
+
         # function to compute
         out_f.write('\n')
@@ -1091,7 +1094,7 @@
         for func_line in func_str.split('\n'):
             out_f.write('%s%s\n' % (spaces4, func_line))
-        
+
         Iqxy_string = 'return Iq(numpy.sqrt(x**2+y**2) '
-            
+
         out_f.write('\n')
         out_f.write('def Iqxy(x, y ')
@@ -1113,12 +1116,18 @@
         items = line.split(";")
         for item in items:
-            name = item.split("=")[0].lstrip().rstrip()
+            name = item.split("=")[0].strip()
+            description = ""
             try:
-                value = item.split("=")[1].lstrip().rstrip()
+                value = item.split("=")[1].strip()
+                if value.count("#"):
+                    # If line ends in a comment, remove it before parsing float
+                    index = value.index("#")
+                    description = value[(index + 1):].strip()
+                    value = value[:value.index("#")].strip()
                 float(value)
-            except:
+            except ValueError:
                 value = 1.0 # default
 
-        return name, value
+        return name, value, description
 
     def set_function_helper(self, line):
@@ -1204,5 +1213,5 @@
 import numpy
 
-#name 
+#name
 
 #title
@@ -1210,5 +1219,5 @@
 #description
 
-#parameters 
+#parameters
 
 """
Index: src/sas/sasgui/perspectives/calculator/pyconsole.py
===================================================================
--- src/sas/sasgui/perspectives/calculator/pyconsole.py	(revision 7432acb919f4013119ca918a73350297e0d4c93f)
+++ src/sas/sasgui/perspectives/calculator/pyconsole.py	(revision 4627657012479a5a97fa088f21eb6a94c0f29f6a)
@@ -37,8 +37,7 @@
     Iqxy = model.evalDistribution([qx, qy])
 
-    result = """
-    Iq(%s) = %s
-    Iqxy(%s, %s) = %s
-    """%(q, Iq, qx, qy, Iqxy)
+    # check the model's unit tests run
+    from sasmodels.model_test import run_one
+    result = run_one(path)
 
     return result
@@ -89,5 +88,5 @@
         ok = wx.Button(self, wx.ID_OK, "OK")
 
-        # Mysterious constraint layouts from 
+        # Mysterious constraint layouts from
         # https://www.wxpython.org/docs/api/wx.lib.layoutf.Layoutf-class.html
         lc = layoutf.Layoutf('t=t5#1;b=t5#2;l=l5#1;r=r5#1', (self,ok))
Index: src/sas/sasgui/perspectives/fitting/fitting.py
===================================================================
--- src/sas/sasgui/perspectives/fitting/fitting.py	(revision a534432becfaa32e8ffca1463734221cba9c0dd2)
+++ src/sas/sasgui/perspectives/fitting/fitting.py	(revision 489f53a68015fe01293d70169de3d0f8ba84369e)
@@ -257,7 +257,15 @@
         toks = os.path.splitext(label)
         path = os.path.join(models.find_plugins_dir(), toks[0])
+        message = "Are you sure you want to delete the file {}?".format(path)
+        dlg = wx.MessageDialog(self.frame, message, '', wx.YES_NO | wx.ICON_QUESTION)
+        if not dlg.ShowModal() == wx.ID_YES:
+            return
         try:
             for ext in ['.py', '.pyc']:
                 p_path = path + ext
+                if ext == '.pyc' and not os.path.isfile(path + ext):
+                    # If model is invalid, .pyc file may not exist as model has
+                    # never been compiled. Don't try and delete it
+                    continue
                 os.remove(p_path)
             self.update_custom_combo()
@@ -361,5 +369,5 @@
                                    'Add a new model function')
         wx.EVT_MENU(owner, wx_id, self.make_new_model)
-        
+
         wx_id = wx.NewId()
         self.edit_model_menu.Append(wx_id, 'Sum|Multi(p1, p2)',
@@ -383,5 +391,5 @@
           '(Re)Load all models present in user plugin_models folder')
         wx.EVT_MENU(owner, wx_id, self.load_plugin_models)
-                
+
     def set_edit_menu_helper(self, owner=None, menu=None):
         """
@@ -1734,6 +1742,6 @@
             @param unsmeared_error: data error, rescaled to unsmeared model
         """
-            
-        number_finite = np.count_nonzero(np.isfinite(y)) 
+
+        number_finite = np.count_nonzero(np.isfinite(y))
         np.nan_to_num(y)
         new_plot = self.create_theory_1D(x, y, page_id, model, data, state,
@@ -1794,5 +1802,5 @@
             msg = "Computing Error: Model did not return any finite value."
             wx.PostEvent(self.parent, StatusEvent(status = msg, info="error"))
-        else:                 
+        else:
             msg = "Computation  completed!"
             if number_finite != y.size:
@@ -1824,5 +1832,5 @@
         that can be plot.
         """
-        number_finite = np.count_nonzero(np.isfinite(image)) 
+        number_finite = np.count_nonzero(np.isfinite(image))
         np.nan_to_num(image)
         new_plot = Data2D(image=image, err_image=data.err_data)
@@ -1927,5 +1935,5 @@
                 ## and may be the cause of other noted instabilities
                 ##
-                ##    -PDB August 12, 2014 
+                ##    -PDB August 12, 2014
                 while self.calc_2D.isrunning():
                     time.sleep(0.1)
@@ -1969,5 +1977,5 @@
             if (self.calc_1D is not None) and self.calc_1D.isrunning():
                 self.calc_1D.stop()
-                ## stop just raises the flag -- the thread is supposed to 
+                ## stop just raises the flag -- the thread is supposed to
                 ## then kill itself but cannot.  Paul Kienzle came up with
                 ## this fix to prevent threads from stepping on each other
@@ -1981,5 +1989,5 @@
                 ## a request to stop the computation.
                 ## It seems thus that the whole thread approach used here
-                ## May need rethinking  
+                ## May need rethinking
                 ##
                 ##    -PDB August 12, 2014
@@ -2146,5 +2154,5 @@
             residuals.dxw = None
             residuals.ytransform = 'y'
-            # For latter scale changes 
+            # For latter scale changes
             residuals.xaxis('\\rm{Q} ', 'A^{-1}')
             residuals.yaxis('\\rm{Residuals} ', 'normalized')
Index: src/sas/sasgui/perspectives/fitting/models.py
===================================================================
--- src/sas/sasgui/perspectives/fitting/models.py	(revision 146c6692b55893e5d1f010be861321b4896fa4ab)
+++ src/sas/sasgui/perspectives/fitting/models.py	(revision b1c20119cf657ba734745bce8235e0d675629175)
@@ -187,5 +187,6 @@
             try:
                 model = load_custom_model(path)
-                model.name = PLUGIN_NAME_BASE + model.name
+                if not model.name.count(PLUGIN_NAME_BASE):
+                    model.name = PLUGIN_NAME_BASE + model.name
                 plugins[model.name] = model
             except Exception:
@@ -300,5 +301,5 @@
         for name, plug in self.stored_plugins.iteritems():
             self.model_dictionary[name] = plug
-        
+
         self._get_multifunc_models()
 
Index: src/sas/sasgui/perspectives/pr/inversion_panel.py
===================================================================
--- src/sas/sasgui/perspectives/pr/inversion_panel.py	(revision 7432acb919f4013119ca918a73350297e0d4c93f)
+++ src/sas/sasgui/perspectives/pr/inversion_panel.py	(revision cb62bd55ae79395ac6e01d8b2077f4d496625c41)
@@ -70,5 +70,9 @@
         self.rg_ctl = None
         self.iq0_ctl = None
-        self.bck_chk = None
+        self.bck_value = None
+        self.bck_est_ctl = None
+        self.bck_man_ctl = None
+        self.est_bck = True
+        self.bck_input = None
         self.bck_ctl = None
 
@@ -312,5 +316,5 @@
         # Read the panel's parameters
         flag, alpha, dmax, nfunc, qmin, \
-        qmax, height, width = self._read_pars()
+        qmax, height, width, bck = self._read_pars()
 
         state.nfunc = nfunc
@@ -326,5 +330,6 @@
 
         # Background evaluation checkbox
-        state.estimate_bck = self.bck_chk.IsChecked()
+        state.estimate_bck = self.est_bck
+        state.bck_value = bck
 
         # Estimates
@@ -371,6 +376,12 @@
         self.plot_data.SetValue(str(state.file))
 
-        # Background evaluation checkbox
-        self.bck_chk.SetValue(state.estimate_bck)
+        # Background value
+        self.bck_est_ctl.SetValue(state.estimate_bck)
+        self.bck_man_ctl.SetValue(not state.estimate_bck)
+        if not state.estimate_bck:
+            self.bck_input.Enable()
+            self.bck_input.SetValue(str(state.bck_value))
+        self.est_bck = state.estimate_bck
+        self.bck_value = state.bck_value
 
         # Estimates
@@ -431,12 +442,40 @@
                        wx.EXPAND | wx.LEFT | wx.RIGHT | wx.ADJUST_MINSIZE, 15)
 
-        self.bck_chk = wx.CheckBox(self, -1, "Estimate background level")
-        hint_msg = "Check box to let the fit estimate "
-        hint_msg += "the constant background level."
-        self.bck_chk.SetToolTipString(hint_msg)
-        self.bck_chk.Bind(wx.EVT_CHECKBOX, self._on_pars_changed)
+        radio_sizer = wx.GridBagSizer(5, 5)
+
+        self.bck_est_ctl = wx.RadioButton(self, -1, "Estimate background level",
+            name="estimate_bck", style=wx.RB_GROUP)
+        self.bck_man_ctl = wx.RadioButton(self, -1, "Input manual background level",
+            name="manual_bck")
+
+        self.bck_est_ctl.Bind(wx.EVT_RADIOBUTTON, self._on_bck_changed)
+        self.bck_man_ctl.Bind(wx.EVT_RADIOBUTTON, self._on_bck_changed)
+
+        radio_sizer.Add(self.bck_est_ctl, (0,0), (1,1), wx.LEFT | wx.EXPAND)
+        radio_sizer.Add(self.bck_man_ctl, (0,1), (1,1), wx.RIGHT | wx.EXPAND)
+
         iy += 1
-        pars_sizer.Add(self.bck_chk, (iy, 0), (1, 2),
+        pars_sizer.Add(radio_sizer, (iy, 0), (1, 2),
                        wx.LEFT | wx.EXPAND | wx.ADJUST_MINSIZE, 15)
+
+        background_label = wx.StaticText(self, -1, "Background: ")
+        self.bck_input = PrTextCtrl(self, -1, style=wx.TE_PROCESS_ENTER,
+            size=(60, 20), value="0.0")
+        self.bck_input.Disable()
+        self.bck_input.Bind(wx.EVT_TEXT, self._read_pars)
+        background_units = wx.StaticText(self, -1, "[A^(-1)]", size=(55, 20))
+        iy += 1
+
+        background_sizer = wx.GridBagSizer(5, 5)
+
+        background_sizer.Add(background_label, (0, 0), (1,1),
+            wx.LEFT | wx.EXPAND | wx.ADJUST_MINSIZE, 23)
+        background_sizer.Add(self.bck_input, (0, 1), (1,1),
+            wx.LEFT | wx.ADJUST_MINSIZE, 5)
+        background_sizer.Add(background_units, (0, 2), (1,1),
+            wx.LEFT | wx.ADJUST_MINSIZE, 5)
+        pars_sizer.Add(background_sizer, (iy, 0), (1, 2),
+            wx.LEFT | wx.EXPAND | wx.ADJUST_MINSIZE, 15)
+
         boxsizer1.Add(pars_sizer, 0, wx.EXPAND)
         vbox.Add(boxsizer1, (iy_vb, 0), (1, 1),
@@ -764,4 +803,11 @@
         self._on_pars_changed()
 
+    def _on_bck_changed(self, evt=None):
+        self.est_bck = self.bck_est_ctl.GetValue()
+        if self.est_bck:
+            self.bck_input.Disable()
+        else:
+            self.bck_input.Enable()
+
     def _on_pars_changed(self, evt=None):
         """
@@ -770,6 +816,5 @@
         scenes.
         """
-        flag, alpha, dmax, nfunc, qmin, qmax, height, width = self._read_pars()
-        has_bck = self.bck_chk.IsChecked()
+        flag, alpha, dmax, nfunc, qmin, qmax, height, width, bck = self._read_pars()
 
         # If the pars are valid, estimate alpha
@@ -783,5 +828,6 @@
                                                       d_max=dmax,
                                                       q_min=qmin, q_max=qmax,
-                                                      bck=has_bck,
+                                                      est_bck=self.est_bck,
+                                                      bck_val=bck,
                                                       height=height,
                                                       width=width)
@@ -797,4 +843,5 @@
         height = 0
         width = 0
+        background = 0
         flag = True
         # Read slit height
@@ -890,5 +937,19 @@
             self.qmax_ctl.Refresh()
 
-        return flag, alpha, dmax, nfunc, qmin, qmax, height, width
+        # Read background
+        if not self.est_bck:
+            try:
+                bck_str = self.bck_input.GetValue()
+                if len(bck_str.strip()) == 0:
+                    background = 0.0
+                else:
+                    background = float(bck_str)
+                    self.bck_input.SetBackgroundColour(wx.WHITE)
+            except ValueError:
+                background = 0.0
+                self.bck_input.SetBackgroundColour("pink")
+            self.bck_input.Refresh()
+
+        return flag, alpha, dmax, nfunc, qmin, qmax, height, width, background
 
     def _on_explore(self, evt):
@@ -915,6 +976,5 @@
         # Push it to the manager
 
-        flag, alpha, dmax, nfunc, qmin, qmax, height, width = self._read_pars()
-        has_bck = self.bck_chk.IsChecked()
+        flag, alpha, dmax, nfunc, qmin, qmax, height, width, bck = self._read_pars()
 
         if flag:
@@ -928,5 +988,6 @@
                                                    d_max=dmax,
                                                    q_min=qmin, q_max=qmax,
-                                                   bck=has_bck,
+                                                   est_bck=self.est_bck,
+                                                   bck_val = bck,
                                                    height=height,
                                                    width=width)
Index: src/sas/sasgui/perspectives/pr/inversion_state.py
===================================================================
--- src/sas/sasgui/perspectives/pr/inversion_state.py	(revision 7432acb919f4013119ca918a73350297e0d4c93f)
+++ src/sas/sasgui/perspectives/pr/inversion_state.py	(revision a0e6b1b9f274f2a46d9f25fe7801411ef0701217)
@@ -36,5 +36,6 @@
            ["qmin", "qmin"],
            ["qmax", "qmax"],
-           ["estimate_bck", "estimate_bck"]]
+           ["estimate_bck", "estimate_bck"],
+           ["bck_value", "bck_value"]]
 
 ## List of P(r) inversion outputs
@@ -62,4 +63,5 @@
         self.estimate_bck = False
         self.timestamp = time.time()
+        self.bck_value = 0.0
 
         # Inversion parameters
@@ -109,4 +111,5 @@
         state += "Timestamp:    %s\n" % self.timestamp
         state += "Estimate bck: %s\n" % str(self.estimate_bck)
+        state += "Bck Value:    %s\n" % str(self.bck_value)
         state += "No. terms:    %s\n" % str(self.nfunc)
         state += "D_max:        %s\n" % str(self.d_max)
@@ -296,6 +299,6 @@
                             self.coefficients.append(float(c))
                         except:
-                            # Bad data, skip. We will count the number of 
-                            # coefficients at the very end and deal with 
+                            # Bad data, skip. We will count the number of
+                            # coefficients at the very end and deal with
                             # inconsistencies then.
                             pass
@@ -329,6 +332,6 @@
                                 cov_row.append(float(c))
                             except:
-                                # Bad data, skip. We will count the number of 
-                                # coefficients at the very end and deal with 
+                                # Bad data, skip. We will count the number of
+                                # coefficients at the very end and deal with
                                 # inconsistencies then.
                                 pass
@@ -461,6 +464,6 @@
                 tree = etree.parse(path, parser=etree.ETCompatXMLParser())
                 # Check the format version number
-                # Specifying the namespace will take care of the file 
-                #format version 
+                # Specifying the namespace will take care of the file
+                #format version
                 root = tree.getroot()
 
Index: src/sas/sasgui/perspectives/pr/media/pr_help.rst
===================================================================
--- src/sas/sasgui/perspectives/pr/media/pr_help.rst	(revision 1221196f9d2d9f4d3fe2ad04b2621d054ea184e7)
+++ src/sas/sasgui/perspectives/pr/media/pr_help.rst	(revision 1abd19cf44dad3cb6ecf909cc6fc8c5be7075466)
@@ -49,6 +49,8 @@
 P(r) inversion requires that the background be perfectly subtracted.  This is
 often difficult to do well and thus many data sets will include a background.
-For those cases, the user should check the "estimate background" box and the
-module will do its best to estimate it.
+For those cases, the user should check the "Estimate background level" option
+and the module will do its best to estimate it. If you know the background value
+for your data, select the "Input manual background level" option. Note that
+this value will be treated as having 0 error.
 
 The P(r) module is constantly computing in the background what the optimum
Index: src/sas/sasgui/perspectives/pr/pr.py
===================================================================
--- src/sas/sasgui/perspectives/pr/pr.py	(revision a1b8fee73528559155793dd74cda07d0c32e9d72)
+++ src/sas/sasgui/perspectives/pr/pr.py	(revision cb62bd55ae79395ac6e01d8b2077f4d496625c41)
@@ -68,5 +68,6 @@
         self.q_min = None
         self.q_max = None
-        self.has_bck = False
+        self.est_bck = False
+        self.bck_val = 0
         self.slit_height = 0
         self.slit_width = 0
@@ -828,4 +829,5 @@
         self.control_panel.iq0 = pr.iq0(out)
         self.control_panel.bck = pr.background
+        self.control_panel.bck_input.SetValue("{:.2g}".format(pr.background))
 
         # Show I(q) fit
@@ -907,5 +909,5 @@
 
     def setup_plot_inversion(self, alpha, nfunc, d_max, q_min=None, q_max=None,
-                             bck=False, height=0, width=0):
+                             est_bck=False, bck_val=0, height=0, width=0):
         """
             Set up inversion from plotted data
@@ -916,5 +918,6 @@
         self.q_min = q_min
         self.q_max = q_max
-        self.has_bck = bck
+        self.est_bck = est_bck
+        self.bck_val = bck_val
         self.slit_height = height
         self.slit_width = width
@@ -930,5 +933,5 @@
     def estimate_plot_inversion(self, alpha, nfunc, d_max,
                                 q_min=None, q_max=None,
-                                bck=False, height=0, width=0):
+                                est_bck=False, bck_val=0, height=0, width=0):
         """
             Estimate parameters from plotted data
@@ -939,5 +942,6 @@
         self.q_min = q_min
         self.q_max = q_max
-        self.has_bck = bck
+        self.est_bck = est_bck
+        self.bck_val = bck_val
         self.slit_height = height
         self.slit_width = width
@@ -973,7 +977,8 @@
         pr.x = self.current_plottable.x
         pr.y = self.current_plottable.y
-        pr.has_bck = self.has_bck
+        pr.est_bck = self.est_bck
         pr.slit_height = self.slit_height
         pr.slit_width = self.slit_width
+        pr.background = self.bck_val
 
         # Keep track of the plot window title to ensure that
@@ -1019,5 +1024,5 @@
         self.q_min = q_min
         self.q_max = q_max
-        self.has_bck = bck
+        self.est_bck = bck
         self.slit_height = height
         self.slit_width = width
@@ -1042,5 +1047,5 @@
         self.q_min = q_min
         self.q_max = q_max
-        self.has_bck = bck
+        self.est_bck = bck
         self.slit_height = height
         self.slit_width = width
@@ -1115,5 +1120,5 @@
             pr.y = y
             pr.err = err
-            pr.has_bck = self.has_bck
+            pr.est_bck = self.est_bck
             pr.slit_height = self.slit_height
             pr.slit_width = self.slit_width
