diff --git a/pykat/optics/maps.py b/pykat/optics/maps.py
index 3ea4b3620dbae104ecee4d657c2a4276e106a798..6cb55e8f6e32fd748f77d633ad5c76c673fb2e72 100644
--- a/pykat/optics/maps.py
+++ b/pykat/optics/maps.py
@@ -594,7 +594,10 @@ class surfacemap(object):
             nVals = range(0,n+1)
             for k in nVals:
                 mVals.append(range(-k,k+1,2))
-        elif isinstance(m,list):
+        elif isinstance(m, list):
+            nVals = range(n,n+1)
+            mVals.append(m)
+        elif isinstance(m, range):
             nVals = range(n,n+1)
             mVals.append(m)
         elif isinstance(m,int):
@@ -1368,7 +1371,12 @@ class surfacemap(object):
         rho, phi= self.createPolarGrid()
         rho = rho/R
 
-        if isinstance(m,list):
+        if isinstance(m, list):
+            for k in range(len(m)):
+                Z = zernike(m[k], n, rho, phi)
+                self.data[self.notNan] = self.data[self.notNan]-A[k]*Z[self.notNan]
+                self.zernikeRemoved = (m[k], n, A[k])
+        elif isinstance(m, range):
             for k in range(len(m)):
                 Z = zernike(m[k], n, rho, phi)
                 self.data[self.notNan] = self.data[self.notNan]-A[k]*Z[self.notNan]