diff --git a/modules/bindings/pymod/msms.py b/modules/bindings/pymod/msms.py
index 92f9494cf836c149e5a4330e922c008c63ba9c2f..fc50ff1c7b8081f1774d62fc36712bfb8487b4e7 100644
--- a/modules/bindings/pymod/msms.py
+++ b/modules/bindings/pymod/msms.py
@@ -317,11 +317,16 @@ def CalculateSurface(entity, density=1.0, radius=1.5, all_surf=False,
       num_surf=int(line.split()[2])
 
   # get surfaces
+  entity_sel = entity.Select(selection)
   msms_surfaces=[]
-  msms_surfaces.append(io.LoadSurface(msms_data_file, "msms"))
+  s = io.LoadSurface(msms_data_file, "msms")
+  s.Attach(entity_sel, 3+radius)
+  msms_surfaces.append(s)
   for n in range(1,num_surf+1):
     filename=msms_data_file+'_'+str(n)
-    msms_surfaces.append(io.LoadSurface(filename, "msms"))
+    s = io.LoadSurface(filename, "msms")
+    s.Attach(entity_sel, 3+radius)
+    msms_surfaces.append(s)
 
   # clean up
   if not keep_files: