diff --git a/src/mesh/blockMesh/block/blockCreate.C b/src/mesh/blockMesh/block/blockCreate.C
old mode 100644
new mode 100755
index 038f278..66c0e68
--- a/src/mesh/blockMesh/block/blockCreate.C
+++ b/src/mesh/blockMesh/block/blockCreate.C
@@ -205,8 +205,41 @@ void Foam::block::createPoints() const
                 vector corz2 = impz2*(p[9][k] - edgez2);
                 vector corz3 = impz3*(p[10][k] - edgez3);
                 vector corz4 = impz4*(p[11][k] - edgez4);
+                
+                // calculate the cross-scaling factors
+                vector scale_p_x42 = p[3][i]-p[1][i];
+                vector scale_p_x31 = p[2][i]-p[0][i];
+                vector scale_edge_x42 = edgex4-edgex2;
+                vector scale_edge_x31 = edgex3-edgex1;
+                
+                scalar scale_x =
+                (
+                    (impx2+impx4)*mag(scale_p_x42)/mag(scale_edge_x42)
+                  + (impx1+impx3)*mag(scale_p_x31)/mag(scale_edge_x31)
+                );
 
+                vector scale_p_y42 = p[7][j]-p[5][j];
+                vector scale_p_y31 = p[6][j]-p[4][j];
+                vector scale_edge_y42 = edgey4-edgey2;
+                vector scale_edge_y31 = edgey3-edgey1;
+                
+                scalar scale_y =
+                (
+                    (impy2+impy4)*mag(scale_p_y42)/mag(scale_edge_y42)
+                  + (impy1+impy3)*mag(scale_p_y31)/mag(scale_edge_y31)
+                );
 
+                vector scale_p_z42 = p[11][k]-p[9][k];
+                vector scale_p_z31 = p[10][k]-p[8][k];
+                vector scale_edge_z42 = edgez4-edgez2;
+                vector scale_edge_z31 = edgez3-edgez1;
+                
+                scalar scale_z =
+                (
+                    (impz2+impz4)*mag(scale_p_z42)/mag(scale_edge_z42)
+                  + (impz1+impz3)*mag(scale_p_z31)/mag(scale_edge_z31)
+                );
+                
                 // multiply by the importance factor
 
                 // x-direction
@@ -238,10 +271,11 @@ void Foam::block::createPoints() const
 
                 vertices_[vertexNo] +=
                 (
-                    corx1 + corx2 + corx3 + corx4
-                  + cory1 + cory2 + cory3 + cory4
-                  + corz1 + corz2 + corz3 + corz4
+                    scale_z*scale_y*(corx1 + corx2 + corx3 + corx4)
+                  + scale_z*scale_x*(cory1 + cory2 + cory3 + cory4)
+                  + scale_x*scale_y*(corz1 + corz2 + corz3 + corz4)
                 );
+                
             }
         }
     }
