diff --git a/shapes.scad b/shapes.scad
index a1d923f..10e39d8 100644
--- a/shapes.scad
+++ b/shapes.scad
@@ -1324,20 +1324,18 @@ module staggered_sphere(r=undef, d=undef, circum=false, align=V_CENTER) {
 	pcnt = len(pts);
 	faces = concat(
 		[
-			for (i = [1:sides]) each [
-				[0, i%sides+1, i],
-				[pcnt-1, pcnt-1-(i%sides+1), pcnt-1-i]
-			]
+			for (i = [1:sides], j=[0,1])
+			j? [0, i%sides+1, i] : [pcnt-1, pcnt-1-(i%sides+1), pcnt-1-i]
 		],
 		[
-			for (p = [0:vsides-4], i = [0:sides-1]) let(
+			for (p = [0:vsides-4], i = [0:sides-1], j=[0,1]) let(
 				b1 = 1+p*sides,
 				b2 = 1+(p+1)*sides,
 				v1 = b1+i,
 				v2 = b1+(i+1)%sides,
 				v3 = b2+((i+((p%2)?(sides-1):0))%sides),
 				v4 = b2+((i+1+((p%2)?(sides-1):0))%sides)
-			) each [[v1,v4,v3], [v1,v2,v4]]
+			) j? [v1,v4,v3] : [v1,v2,v4]
 		]
 	);
 	zrot((floor(sides/4)%2==1)? 180/sides : 0) polyhedron(points=pts, faces=faces);