Index: src/sas/sascalc/dataloader/data_info.py
===================================================================
--- src/sas/sascalc/dataloader/data_info.py	(revision 345e7e4a8c6f5977c8c07032553b5ab00bdf837d)
+++ src/sas/sascalc/dataloader/data_info.py	(revision a9f579c8400c480f42c42445e1ff4dab09a6baa4)
@@ -93,4 +93,7 @@
     ## Slit smearing width
     dxw = None
+    ## SESANS specific params (wavelengths for spin echo length calculation)
+    lam = None
+    dlam = None
 
     # Units
@@ -100,5 +103,5 @@
     _yunit = ''
 
-    def __init__(self, x, y, dx=None, dy=None, dxl=None, dxw=None):
+    def __init__(self, x, y, dx=None, dy=None, dxl=None, dxw=None, lam=None, dlam=None):
         self.x = numpy.asarray(x)
         self.y = numpy.asarray(y)
@@ -111,4 +114,8 @@
         if dxw is not None:
             self.dxw = numpy.asarray(dxw)
+        if lam is not None:
+            self.lam = numpy.asarray(lam)
+        if dlam is not None:
+            self.dlam = numpy.asarray(dlam)
 
     def xaxis(self, label, unit):
@@ -736,14 +743,20 @@
         return self._perform_union(other)
 
-class SESANSData1D(plottable_sesans1D, DataInfo):
-    """
-    SESANS 1D data class
-    """
-    x_unit = 'nm'
-    y_unit = 'pol'
-
-    def __init__(self, x=None, y=None, lam=None, dx=None, dy=None, dlam=None):
+class Data1D(plottable_1D, DataInfo):
+    """
+    1D data class
+    """
+    def __init__(self, x=None, y=None, dx=None, dy=None, lam=None, dlam=None, isSesans=False):
+        self.isSesans = isSesans
         DataInfo.__init__(self)
-        plottable_sesans1D.__init__(self, x, y, lam, dx, dy, dlam)
+        plottable_1D.__init__(self, x, y, dx, dy,None, None, lam, dlam)
+        if self.isSesans:
+            x_unit = 'A'
+            y_unit = 'pol'
+        elif not self.isSesans: # it's SANS data! (Could also be simple else statement, but i prefer exhaustive conditionals...-JHB)
+            x_unit = '1/A'
+            y_unit = '1/cm'
+        else: # and if it's neither, you get punished!
+            raise(TypeError,'This is neither SANS nor SESANS data, what the hell are you doing??')
 
     def __str__(self):
@@ -759,60 +772,4 @@
         return _str
 
-    def clone_without_data(self, length=0, clone=None):
-        """
-        Clone the current object, without copying the data (which
-        will be filled out by a subsequent operation).
-        The data arrays will be initialized to zero.
-
-        :param length: length of the data array to be initialized
-        :param clone: if provided, the data will be copied to clone
-        """
-        from copy import deepcopy
-        if clone is None or not issubclass(clone.__class__, Data1D):
-            x = numpy.zeros(length)
-            dx = numpy.zeros(length)
-            y = numpy.zeros(length)
-            dy = numpy.zeros(length)
-            clone = Data1D(x, y, dx=dx, dy=dy)
-
-        clone.title = self.title
-        clone.run = self.run
-        clone.filename = self.filename
-        clone.instrument = self.instrument
-        clone.notes = deepcopy(self.notes)
-        clone.process = deepcopy(self.process)
-        clone.detector = deepcopy(self.detector)
-        clone.sample = deepcopy(self.sample)
-        clone.source = deepcopy(self.source)
-        clone.collimation = deepcopy(self.collimation)
-        clone.trans_spectrum = deepcopy(self.trans_spectrum)
-        clone.meta_data = deepcopy(self.meta_data)
-        clone.errors = deepcopy(self.errors)
-
-        return clone
-
-class Data1D(plottable_1D, DataInfo):
-    """
-    1D data class
-    """
-    x_unit = '1/A'
-    y_unit = '1/cm'
-
-    def __init__(self, x, y, dx=None, dy=None):
-        DataInfo.__init__(self)
-        plottable_1D.__init__(self, x, y, dx, dy)
-
-    def __str__(self):
-        """
-        Nice printout
-        """
-        _str = "%s\n" % DataInfo.__str__(self)
-        _str += "Data:\n"
-        _str += "   Type:         %s\n" % self.__class__.__name__
-        _str += "   X-axis:       %s\t[%s]\n" % (self._xaxis, self._xunit)
-        _str += "   Y-axis:       %s\t[%s]\n" % (self._yaxis, self._yunit)
-        _str += "   Length:       %g\n" % len(self.x)
-        return _str
-
     def is_slit_smeared(self):
         """
@@ -843,5 +800,7 @@
             y = numpy.zeros(length)
             dy = numpy.zeros(length)
-            clone = Data1D(x, y, dx=dx, dy=dy)
+            lam = numpy.zeros(length)
+            dlam = numpy.zeros(length)
+            clone = Data1D(x, y, lam=lam, dx=dx, dy=dy, dlam=dlam)
 
         clone.title = self.title
Index: src/sas/sascalc/dataloader/readers/sesans_reader.py
===================================================================
--- src/sas/sascalc/dataloader/readers/sesans_reader.py	(revision 345e7e4a8c6f5977c8c07032553b5ab00bdf837d)
+++ src/sas/sascalc/dataloader/readers/sesans_reader.py	(revision a9f579c8400c480f42c42445e1ff4dab09a6baa4)
@@ -59,14 +59,5 @@
                     raise  RuntimeError, "sesans_reader: cannot open %s" % path
                 buff = input_f.read()
-#                print buff
                 lines = buff.splitlines()
-#                print lines
-                #Jae could not find python universal line spliter:
-                #keep the below for now
-                # some ascii data has \r line separator,
-                # try it when the data is on only one long line
-#                if len(lines) < 2 :
-#                    lines = buff.split('\r')
-                 
                 x  = numpy.zeros(0)
                 y  = numpy.zeros(0)
@@ -83,24 +74,7 @@
                 tdlam = numpy.zeros(0)
                 tdx = numpy.zeros(0)
-#                print "all good"
-                output = SESANSData1D(x=x, y=y, lam=lam, dy=dy, dx=dx, dlam=dlam)
-#                print output                
+                output = Data1D(x=x, y=y, lam=lam, dy=dy, dx=dx, dlam=dlam, isSesans=True)
                 self.filename = output.filename = basename
 
-#                #Initialize counters for data lines and header lines.
-#                is_data = False  # Has more than 5 lines
-#                # More than "5" lines of data is considered as actual
-#                # data unless that is the only data
-#                mum_data_lines = 5
-#                # To count # of current data candidate lines
-#                i = -1
-#                # To count total # of previous data candidate lines
-#                i1 = -1
-#                # To count # of header lines
-#                j = -1
-#                # Helps to count # of header lines
-#                j1 = -1
-#                #minimum required number of columns of data; ( <= 4).
-#                lentoks = 2
                 paramnames=[]
                 paramvals=[]
@@ -111,6 +85,5 @@
                 Pvals=[]
                 dPvals=[]
-#                print x
-#                print zvals
+
                 for line in lines:
                     # Initial try for CSV (split on ,)
@@ -122,9 +95,9 @@
                     if len(toks)>5:
                         zvals.append(toks[0])
-                        dzvals.append(toks[1])
-                        lamvals.append(toks[2])
-                        dlamvals.append(toks[3])
-                        Pvals.append(toks[4])
-                        dPvals.append(toks[5])
+                        dzvals.append(toks[3])
+                        lamvals.append(toks[4])
+                        dlamvals.append(toks[5])
+                        Pvals.append(toks[1])
+                        dPvals.append(toks[2])
                     else:
                         continue
@@ -140,6 +113,8 @@
                 default_z_unit = "A"
                 data_conv_P = None
-                default_p_unit = " "
+                default_p_unit = " " # Adjust unit for axis (L^-3)
                 lam_unit = lam_header[1].replace("[","").replace("]","")
+                if lam_unit == 'AA':
+                    lam_unit = 'A'
                 varheader=[zvals[0],dzvals[0],lamvals[0],dlamvals[0],Pvals[0],dPvals[0]]
                 valrange=range(1, len(zvals))
@@ -161,4 +136,5 @@
                 output.x, output.x_unit = self._unit_conversion(x, lam_unit, default_z_unit)
                 output.y = y
+                output.y_unit = '\AA^{-2} cm^{-1}'  # output y_unit added
                 output.dx, output.dx_unit = self._unit_conversion(dx, lam_unit, default_z_unit)
                 output.dy = dy
@@ -166,17 +142,17 @@
                 output.dlam, output.dlam_unit = self._unit_conversion(dlam, lam_unit, default_z_unit)
 
-                output.xaxis("\rm{z}", output.x_unit)
-                output.yaxis("\\rm{P/P0}", output.y_unit)
+                output.xaxis("\\rm{z}", output.x_unit)
+                output.yaxis("\\rm{ln(P)/(t \lambda^2)}", output.y_unit)  # Adjust label to ln P/(lam^2 t), remove lam column refs
                 # Store loading process information
                 output.meta_data['loader'] = self.type_name
-                output.sample.thickness = float(paramvals[6])
+                #output.sample.thickness = float(paramvals[6])
                 output.sample.name = paramvals[1]
                 output.sample.ID = paramvals[0]
                 zaccept_unit_split = paramnames[7].split("[")
                 zaccept_unit = zaccept_unit_split[1].replace("]","")
-                if zaccept_unit.strip() == '\AA^-1':
+                if zaccept_unit.strip() == '\AA^-1' or zaccept_unit.strip() == '\A^-1':
                     zaccept_unit = "1/A"
                 output.sample.zacceptance=(float(paramvals[7]),zaccept_unit)
-                output.vars=varheader
+                output.vars = varheader
 
                 if len(output.x) < 1:
