diff --git a/HeatSink.scad b/HeatSink.scad
index 5fb06b28403dc2fe09f5b05928a994fb0766cb01..dd542fd191486baa9b5da37272c95209ff5f4e5a 100644
--- a/HeatSink.scad
+++ b/HeatSink.scad
@@ -366,14 +366,14 @@ module crossNPipe(width, height, length, radius, strength, N, center=false) {
   
   epsilon = 0.001;  // TODO: may need adjustment
   
-  tz = center ? -l/2 : 0;
+  tz = center ? h/2 : 0;
   
-  difference() {
-    for (rz=[0:360/N:360]) rotate([-90, 0, rz]) translate([0, 0, tz]) linear_extrude(l) {
+  translate([0, 0, tz]) difference() {
+    for (rz=[0:360/N:360]) rotate([-90, 0, rz]) linear_extrude(l) {
       roundRect(w, h, r);
     }
 
-    for (rz=[0:360/N:360]) rotate([-90, 0, rz])translate([0, 0, tz]) linear_extrude(l + epsilon) {
+    for (rz=[0:360/N:360]) rotate([-90, 0, rz]) linear_extrude(l + epsilon) {
       roundRect(w - _str*2, h - _str*2, r - _str);
     }
   }