diff --git a/pykat/optics/maps.py b/pykat/optics/maps.py
index 0e6134b3df188832f60b8af5c28c78f5c93e51e0..d72eea2a1f4efd63d223d6fa65aa4164707fee58 100644
--- a/pykat/optics/maps.py
+++ b/pykat/optics/maps.py
@@ -309,6 +309,11 @@ class surfacemap(object):
             ymax = len(self.y)-1
             ylim = [self.y.min()*100, self.y.max()*100]
             
+        # ALSO (SEE LONG TEXT BELOW) ADDED BY DT TO FIX LIMITS
+        # ------------------------------------------------------
+        xlim,ylim = ylim,xlim
+        # ------------------------------------------------------
+        
         # min and max of z-values
         zmin = self.data[xmin:xmax,ymin:ymax].min()
         zmax = self.data[xmin:xmax,ymin:ymax].max()
@@ -341,6 +346,7 @@ class surfacemap(object):
         if xlim is not None: pylab.xlim(xlim)
         if ylim is not None: pylab.ylim(ylim)
 
+            
         pylab.title('Surface map {0}, type {1}'.format(self.name, self.type))
 
         cbar = fig.colorbar(axes)
@@ -711,158 +717,10 @@ def read_map(filename, mapFormat='finesse'):
         
         data = np.loadtxt(filename, dtype=np.float64,ndmin=2,comments='%')    
 
-    # Converts raw ligo mirror map to the finesse format. Based
-    # on translation of the matlab script 'FT_read_ligo_map.m'.
-    elif mapFormat == 'ligohej':
-        
-        # Remove '_asc.dat' for output name
-        name = filename.split('_')
-        name = '_'.join(name[:-1])
-
-        # Unknowns (why are these values hard coded here?)
-        # ------------------------------------------------------
-        # Standard maps have type 'phase' (they store surface
-        # heights)
-        maptype = 0
-        # Both (reflected and transmitted) light fields are
-        # affected
-        field = 0
-        # Measurements in nanometers
-        scaling = 1.0e-9
-        # ------------------------------------------------------
-
-        # Reading header of LIGO-map (Zygo file? Says Zygo in
-        # header...)
-        # ------------------------------------------------------
-        with open(filename, 'r') as f:
-            # Skip first three lines
-            for k in range(3):
-                f.readline()
-            line = f.readline().split()
-
-            # Unknown
-            # ----------------------------------------------
-            y0 = float(line[0])
-            x0 = float(line[1])
-            rows = float(line[2])
-            cols = float(line[3])
-            # ----------------------------------------------
-
-            # Skipping three lines
-            for k in range(3):
-                f.readline()
-            line = f.readline().split()
-
-            # Unknown (Scaling factors)
-            # ----------------------------------------------
-            # Interfeometric scaling factor (?)
-            S = float(line[1])
-            # wavelength (of what?)
-            lam = float(line[2])
-            # Obliquity factor (?)
-            O = float(line[4])
-            # Guessing physical step size
-            xstep = float(line[6])
-            ystep = float(line[6])
-            # ----------------------------------------------
-
-            # Skipping two lines
-            for k in range(2):
-                f.readline()
-            line = f.readline().split()
-
-            # Unknown
-            # Resolution of phase data points, 1 or 0.
-            phaseRes = float(line[0])
-            if phaseRes == 0:
-                R = 4096
-            elif phaseRes == 1:
-                R = 32768
-            else:
-                print('Error, invalid phaseRes')
-
-            # Unknown
-            hScale = S*O*lam/R
-
-            # Skipping four lines
-            for k in range(4):
-                f.readline()
-            # Skipping lines until '#' is found.
-            while f.readline()[0] != '#':
-                pass
-
-            # Reading the data
-            # ----------------------------------------------
-            # Function converting string to float
-            g = lambda x: float(x)
-            # Array with the data
-            data = np.array([])
-            # Reading data until next '#' is reached.
-            line = f.readline().split()
-            while line[0] != '#':
-                data = np.append(data, map(g,line))
-                line = f.readline().split()
-            # ----------------------------------------------
-
-        # Setting all the points outside of the mirror
-        # surface to NaN. These are given a large number
-        # in the file.
-        print(data[0])
-        data[data == data[0]] = np.nan
-        # Reshaping into rows and columns
-        data = data.reshape(cols,rows).transpose()
-        # Pretty sure that the lines below can be done
-        # more efficient, but it's quick as it is.
-        # ----------------------------------------------
-        # Flipping right and left
-        data = np.fliplr(data)
-        # Rotating 90 degrees clockwise 
-        data = np.rot90(data,-1)
-        # Flipping right and left
-        data = np.fliplr(data)
-        # ----------------------------------------------
-
-        # Scaling to nanometer (change this to a user
-        # defined value?) Still don't know where
-        # 'hScale' really comes from.
-        data = (hScale/scaling)*data
-        size = data.shape
-
-        if maptype == 0:
-            mType = 'phase'
-        else:
-            mType = 'Unknown'
-        if field == 0:
-            fType = 'both'
-        else:
-            fType = 'unknown'
-
-        maptype = ' '.join([mType, fType])
-
-        # Wrong! fix by creating recenter method.
-        center = tuple([x0,y0])
-        step = tuple([xstep,ystep])
-
-        # Simple re-centering of mirror, translated from
-        # 'FT_recenter_mirror_map.m'
-        # -------------------------------------------------
-        # Matrix with ones where data element is not NaN.
-        isNan = np.isnan(data)
-        notNan = isNan==False
-        # Row and column indices with non-NaN elements
-        rIndx, cIndx = notNan.nonzero()
-        # Finding centres
-        x0 = float(cIndx.sum())/len(cIndx)
-        y0 = float(rIndx.sum())/len(rIndx)
-        center = tuple([x0,y0])
-        # -------------------------------------------------
-        
-        # Changing NaN to zeros. Just to be able to plot the
-        # map with surfacemap.plot().
-        data[isNan] = 0 
 
-    # Converts raw zygo mirror maps to the finesse format. Based
-    # on translation of the matlab script 'FT_read_zygo_map.m'.
+    # Converts raw zygo and ligo mirror maps to the finesse
+    # format. Based on translation of the matlab scripts
+    # 'FT_read_zygo_map.m' and 'FT_read_ligo_map.m'
     elif mapFormat == 'ligo' or mapFormat == 'zygo':
         if mapFormat == 'ligo':
             isLigo = True