Index: src/sas/qtgui/Calculators/SldPanel.py
===================================================================
--- src/sas/qtgui/Calculators/SldPanel.py	(revision 33c05617b6994eece5b1e65f5d0efaddeb6ae238)
+++ src/sas/qtgui/Calculators/SldPanel.py	(revision 82efbe9d2e628f06211f3d20ea072d4ec60fc9f8)
@@ -32,28 +32,24 @@
 )
 
-class SldResult(object):
-    def __init__(self, molecular_formula, mass_density,
-        neutron_wavelength, neutron_sld_real, neutron_sld_imag,
-        xray_wavelength, xray_sld_real, xray_sld_imag,
-        neutron_inc_xs, neutron_abs_xs, neutron_length):
-
-        self.molecular_formula = molecular_formula
-        self.mass_density = mass_density
+class NeutronSldResult(object):
+    def __init__(self, neutron_wavelength, neutron_sld_real,
+                 neutron_sld_imag, neutron_inc_xs, neutron_abs_xs,
+                 neutron_length):
+
         self.neutron_wavelength = neutron_wavelength
         self.neutron_sld_real = neutron_sld_real
         self.neutron_sld_imag = neutron_sld_imag
+        self.neutron_inc_xs = neutron_inc_xs
+        self.neutron_abs_xs = neutron_abs_xs
+        self.neutron_length = neutron_length
+
+class XraySldResult(object):
+    def __init__(self, xray_wavelength, xray_sld_real, xray_sld_imag):
+
         self.xray_wavelength = xray_wavelength
         self.xray_sld_real = xray_sld_real
         self.xray_sld_imag = xray_sld_imag
-        self.neutron_inc_xs = neutron_inc_xs
-        self.neutron_abs_xs = neutron_abs_xs
-        self.neutron_length = neutron_length
-
-def sldAlgorithm(molecular_formula, mass_density, neutron_wavelength, xray_wavelength):
-
-    xray_sld_real, xray_sld_imag = xray_sld(
-            compound=molecular_formula,
-            density=mass_density,
-            wavelength=xray_wavelength)
+
+def neutronSldAlgorithm(molecular_formula, mass_density, neutron_wavelength):
 
     (neutron_sld_real, neutron_sld_imag, _), (_, neutron_abs_xs, neutron_inc_xs), neutron_length = \
@@ -69,4 +65,17 @@
     scaled_neutron_sld_imag = SCALE * abs(neutron_sld_imag)
 
+    return NeutronSldResult(neutron_wavelength, scaled_neutron_sld_real,
+                            scaled_neutron_sld_imag, neutron_inc_xs,
+                            neutron_abs_xs, neutron_length)
+
+def xraySldAlgorithm(molecular_formula, mass_density, xray_wavelength):
+
+    xray_sld_real, xray_sld_imag = xray_sld(
+            compound=molecular_formula,
+            density=mass_density,
+            wavelength=xray_wavelength)
+
+    SCALE = 1e-6
+
     # xray sld
     scaled_xray_sld_real = SCALE * xray_sld_real
@@ -74,9 +83,6 @@
 
 
-    return SldResult(
-        molecular_formula, mass_density,
-        neutron_wavelength, scaled_neutron_sld_real, scaled_neutron_sld_imag,
-        xray_wavelength, scaled_xray_sld_real, scaled_xray_sld_imag,
-        neutron_inc_xs, neutron_abs_xs, neutron_length)
+    return XraySldResult(xray_wavelength, scaled_xray_sld_real,
+                         scaled_xray_sld_imag)
 
 
@@ -176,28 +182,48 @@
         xrayWavelength = self.ui.editXrayWavelength.text()
 
-        if len(formula) > 0 and len(density) > 0 and len(neutronWavelength) > 0 and len(xrayWavelength) > 0:
-            try:
-                results = sldAlgorithm(str(formula), float(density), float(neutronWavelength), float(xrayWavelength))
-
-                def format(value):
-                    return ("%-5.3g" % value).strip()
-
-                self.model.item(MODEL.NEUTRON_SLD_REAL).setText(format(results.neutron_sld_real))
-                self.model.item(MODEL.NEUTRON_SLD_IMAG).setText(format(results.neutron_sld_imag))
-
-                self.model.item(MODEL.XRAY_SLD_REAL).setText(format(results.xray_sld_real))
-                self.model.item(MODEL.XRAY_SLD_IMAG).setText(format(results.xray_sld_imag))
-
-                self.model.item(MODEL.NEUTRON_INC_XS).setText(format(results.neutron_inc_xs))
-                self.model.item(MODEL.NEUTRON_ABS_XS).setText(format(results.neutron_abs_xs))
-                self.model.item(MODEL.NEUTRON_LENGTH).setText(format(results.neutron_length))
-
-                return
-
-            except Exception as e:
-                pass
-
-        for key in list(self._getOutputs().keys()):
-            self.model.item(key).setText("")
+        if not formula or not density:
+            return
+
+        def format(value):
+            return ("%-5.3g" % value).strip()
+
+        if neutronWavelength:
+            results = neutronSldAlgorithm(str(formula), float(density), float(neutronWavelength))
+
+            self.model.item(MODEL.NEUTRON_SLD_REAL).setText(format(results.neutron_sld_real))
+            self.model.item(MODEL.NEUTRON_SLD_IMAG).setText(format(results.neutron_sld_imag))
+            self.model.item(MODEL.NEUTRON_INC_XS).setText(format(results.neutron_inc_xs))
+            self.model.item(MODEL.NEUTRON_ABS_XS).setText(format(results.neutron_abs_xs))
+            self.model.item(MODEL.NEUTRON_LENGTH).setText(format(results.neutron_length))
+            self.model.item(MODEL.NEUTRON_LENGTH).setEnabled(True)
+            self.ui.editNeutronSldReal.setEnabled(True)
+            self.ui.editNeutronSldImag.setEnabled(True)
+            self.ui.editNeutronIncXs.setEnabled(True)
+            self.ui.editNeutronLength.setEnabled(True)
+            self.ui.editNeutronAbsXs.setEnabled(True)
+        else:
+            self.model.item(MODEL.NEUTRON_SLD_REAL).setText("")
+            self.model.item(MODEL.NEUTRON_SLD_IMAG).setText("")
+            self.model.item(MODEL.NEUTRON_INC_XS).setText("")
+            self.model.item(MODEL.NEUTRON_ABS_XS).setText("")
+            self.model.item(MODEL.NEUTRON_LENGTH).setText("")
+            self.ui.editNeutronSldReal.setEnabled(False)
+            self.ui.editNeutronSldImag.setEnabled(False)
+            self.ui.editNeutronIncXs.setEnabled(False)
+            self.ui.editNeutronLength.setEnabled(False)
+            self.ui.editNeutronAbsXs.setEnabled(False)
+
+        if xrayWavelength:
+            results = xraySldAlgorithm(str(formula), float(density), float(xrayWavelength))
+
+            self.model.item(MODEL.XRAY_SLD_REAL).setText(format(results.xray_sld_real))
+            self.model.item(MODEL.XRAY_SLD_IMAG).setText(format(results.xray_sld_imag))
+            self.ui.editXraySldReal.setEnabled(True)
+            self.ui.editXraySldImag.setEnabled(True)
+        else:
+            self.model.item(MODEL.XRAY_SLD_REAL).setText("")
+            self.model.item(MODEL.XRAY_SLD_IMAG).setText("")
+            self.ui.editXraySldReal.setEnabled(False)
+            self.ui.editXraySldImag.setEnabled(False)
 
     def modelReset(self):
Index: src/sas/qtgui/Calculators/UI/SldPanel.ui
===================================================================
--- src/sas/qtgui/Calculators/UI/SldPanel.ui	(revision 5c0e717a674c1d38556449d3d2473408bfae3319)
+++ src/sas/qtgui/Calculators/UI/SldPanel.ui	(revision 82efbe9d2e628f06211f3d20ea072d4ec60fc9f8)
@@ -182,5 +182,5 @@
        <widget class="QLineEdit" name="editNeutronSldReal">
         <property name="enabled">
-         <bool>false</bool>
+         <bool>true</bool>
         </property>
         <property name="readOnly">
@@ -206,5 +206,5 @@
        <widget class="QLineEdit" name="editNeutronIncXs">
         <property name="enabled">
-         <bool>false</bool>
+         <bool>true</bool>
         </property>
         <property name="readOnly">
@@ -237,5 +237,5 @@
        <widget class="QLineEdit" name="editNeutronSldImag">
         <property name="enabled">
-         <bool>false</bool>
+         <bool>true</bool>
         </property>
         <property name="readOnly">
@@ -254,5 +254,5 @@
        <widget class="QLineEdit" name="editNeutronLength">
         <property name="enabled">
-         <bool>false</bool>
+         <bool>true</bool>
         </property>
         <property name="readOnly">
@@ -271,5 +271,5 @@
        <widget class="QLineEdit" name="editNeutronAbsXs">
         <property name="enabled">
-         <bool>false</bool>
+         <bool>true</bool>
         </property>
         <property name="readOnly">
@@ -340,5 +340,5 @@
        <widget class="QLineEdit" name="editXraySldReal">
         <property name="enabled">
-         <bool>false</bool>
+         <bool>true</bool>
         </property>
         <property name="readOnly">
@@ -350,5 +350,5 @@
        <widget class="QLineEdit" name="editXraySldImag">
         <property name="enabled">
-         <bool>false</bool>
+         <bool>true</bool>
         </property>
         <property name="readOnly">
