Index: src/sas/sasgui/perspectives/fitting/basepage.py
===================================================================
--- src/sas/sasgui/perspectives/fitting/basepage.py	(revision 7e98655d15af7975df43028861c85420dadc5a47)
+++ src/sas/sasgui/perspectives/fitting/basepage.py	(revision d85f1d8ad367b855a9bd1434682c464411b1b00e)
@@ -1245,7 +1245,7 @@
         # we have two more options for smearing
         if self.pinhole_smearer.GetValue():
-            self.dx_percent = state.dx_max
+            self.dx_percent = state.dx_percent
             if self.dx_percent is not None:
-                self.smear_pinhole_max.SetValue(str(self.dx_percent))
+                self.smear_pinhole_percent.SetValue(str(self.dx_percent))
             self.onPinholeSmear(event=None)
         elif self.slit_smearer.GetValue():
Index: src/sas/sasgui/perspectives/fitting/fitpage.py
===================================================================
--- src/sas/sasgui/perspectives/fitting/fitpage.py	(revision 7e98655d15af7975df43028861c85420dadc5a47)
+++ src/sas/sasgui/perspectives/fitting/fitpage.py	(revision d85f1d8ad367b855a9bd1434682c464411b1b00e)
@@ -2309,16 +2309,15 @@
             if len_data < 2:
                 len_data = 2
-            self.dx_percent = float(get_pin_percent.GetValue()) / 100
+            self.dx_percent = float(get_pin_percent.GetValue())
             if self.dx_percent < 0:
                 get_pin_percent.SetBackgroundColour("pink")
                 msg = "Model Error:This value can not be negative!!!"
             elif self.dx_percent is not None:
+                percent = self.dx_percent/100
                 if self._is_2D():
-                    data.dqx_data[data.dqx_data == 0] = \
-                        self.dx_percent * data.qx_data
-                    data.dqy_data[data.dqy_data == 0] = \
-                        self.dx_percent * data.qy_data
+                    data.dqx_data[data.dqx_data == 0] = percent * data.qx_data
+                    data.dqy_data[data.dqy_data == 0] = percent * data.qy_data
                 else:
-                    data.dx = self.dx_percent * data.x
+                    data.dx = percent * data.x
             self.current_smearer = smear_selection(data, self.model)
             # 2D need to set accuracy
Index: src/sas/sasgui/perspectives/fitting/pagestate.py
===================================================================
--- src/sas/sasgui/perspectives/fitting/pagestate.py	(revision 7160131266189ab2ccf927b6fde2648ec04b8260)
+++ src/sas/sasgui/perspectives/fitting/pagestate.py	(revision d85f1d8ad367b855a9bd1434682c464411b1b00e)
@@ -74,6 +74,5 @@
                             ["dq_l", "dq_l", "float"],
                             ["dq_r", "dq_r", "float"],
-                            ["dx_max", "dx_max", "float"],
-                            ["dx_min", "dx_min", "float"],
+                            ["dx_percent", "dx_percent", "float"],
                             ["dxl", "dxl", "float"],
                             ["dxw", "dxw", "float"]]
@@ -215,6 +214,5 @@
         self.dq_l = None
         self.dq_r = None
-        self.dx_max = None
-        self.dx_min = None
+        self.dx_percent = None
         self.dxl = None
         self.dxw = None
@@ -343,6 +341,5 @@
         obj.dq_l = copy.deepcopy(self.dq_l)
         obj.dq_r = copy.deepcopy(self.dq_r)
-        obj.dx_max = copy.deepcopy(self.dx_max)
-        obj.dx_min = copy.deepcopy(self.dx_min)
+        obj.dx_percent = copy.deepcopy(self.dx_percent)
         obj.dxl = copy.deepcopy(self.dxl)
         obj.dxw = copy.deepcopy(self.dxw)
@@ -562,6 +559,5 @@
         rep += "dq_l  : %s\n" % self.dq_l
         rep += "dq_r  : %s\n" % self.dq_r
-        rep += "dx_max  : %s\n" % str(self.dx_max)
-        rep += "dx_min : %s\n" % str(self.dx_min)
+        rep += "dx_percent  : %s\n" % str(self.dx_percent)
         rep += "dxl  : %s\n" % str(self.dxl)
         rep += "dxw : %s\n" % str(self.dxw)
@@ -1049,5 +1045,17 @@
 
                 for item in LIST_OF_STATE_ATTRIBUTES:
-                    node = get_content('ns:%s' % item[0], entry)
+                    try:
+                        node = get_content('ns:%s' % item[0], entry)
+                    except Exception as e:
+                        if item[0] == "dx_percent":
+                            msg = "Custom pinhole smearing has changed "
+                            msg += "as of v4.1.0. dx_min will be used to "
+                            msg += "calculate %Q for smearing purposes."
+                            logging.warning(msg)
+                            node = get_content('ns:%s' % 'dx_min', entry)
+                        else:
+                            msg = "Could not find node %s.\n" % item[0]
+                            msg += e.message
+                            logging.error(msg)
                     setattr(self, item[0], parse_entry_helper(node, item))
 
