diff --git a/Tools/python/split_layers.py b/Tools/python/split_layers.py
index f5c067287b725549d1b34d8f08f04ce5e9c48e3e..584d8f7b54e2f21f4d6cfd7b4e0c54f38b109972 100755
--- a/Tools/python/split_layers.py
+++ b/Tools/python/split_layers.py
@@ -129,8 +129,21 @@ def generate_gds_file(layout_path,cellname):
 		cell=cell.add(gdspy.Rectangle(p11, p12, 1))
 		cell=cell.add(gdspy.Rectangle(p21, p22, 1))
 		cell=cell.flatten()
-		num_cores = multiprocessing.cpu_count()
-		Parallel(n_jobs=max(1,num_cores-2), verbose=50)(delayed(split_task)(p11,p12,p21,p22,cell,layername)for layername in layer_mapping)
+
+		assertflat=0
+		for layername in layer_mapping:
+			print(layername)
+			ncell=gdspy.Cell(layername)
+			thelayers=layer_mapping[layername]
+			for element in cell.polygons:
+				assert 1 == max(assertflat,len(element.polygons))
+				if element.layers[0] in thelayers: ncell.add(element)
+			ncell=ncell.add(gdspy.Rectangle(p11, p12, 1))
+			ncell=ncell.add(gdspy.Rectangle(p21, p22, 1))
+			ncell=ncell.flatten(single_layer=1,single_datatype=1)
+			newgdsii=gdspy.GdsLibrary("mask_"+layername)
+			newgdsii.add(ncell)
+			newgdsii.write_gds(layout_path+"/gds/mask_"+layername+".gds")
 
 	except Exception as e:
 		print("Can't do this:"+e)
@@ -139,19 +152,6 @@ def generate_gds_file(layout_path,cellname):
 		gdspy.LayoutViewer()
 
 
-def split_task(p11,p12,p21,p22,cell,layername):
-	ncell=cell.copy(layername,deep_copy=True)
-	thelayers=layer_mapping[layername]
-	ncell=ncell.remove_polygons(lambda pts, layer, datatype: layer not in thelayers)
-	ncell=ncell.add(gdspy.Rectangle(p11, p12, 1))
-	ncell=ncell.add(gdspy.Rectangle(p21, p22, 1))
-	ncell=ncell.flatten(single_layer=1,single_datatype=1)
-	newgdsii=gdspy.GdsLibrary("mask_"+layername)
-	newgdsii.add(ncell)
-	newgdsii.write_gds(layout_path+"/gds/mask_"+layername+".gds")
-	print(layername)
-
-
 def show_help():
 	print("-n cellname:\tname of the cell to export")
 	print("-l:\t\tswitch to render library cells because default is layout cells")