Index: /issm/trunk/src/c/shared/Elements/CoordinateSystemTransform.cpp
===================================================================
--- /issm/trunk/src/c/shared/Elements/CoordinateSystemTransform.cpp	(revision 10387)
+++ /issm/trunk/src/c/shared/Elements/CoordinateSystemTransform.cpp	(revision 10388)
@@ -3,8 +3,10 @@
  */ 
 #include "./elements.h"
+#include <math.h>
 
 void CoordinateSystemTransform(double** ptransform,Node** nodes,int numnodes,int dimension){
 
 	int     i;
+	double  x_norm,y_norm;
 	double *transform         = NULL;
 	double *values            = NULL;
@@ -31,8 +33,11 @@
 		nodes[i]->GetCoordinateSystem(&coord_system[0][0]);
 		if(dimension==2){
-			transform[(dimension*numnodes)*(i*dimension+0) + i*dimension+0] = coord_system[0][0];
-			transform[(dimension*numnodes)*(i*dimension+0) + i*dimension+1] = coord_system[0][1];
-			transform[(dimension*numnodes)*(i*dimension+1) + i*dimension+0] = coord_system[1][0];
-			transform[(dimension*numnodes)*(i*dimension+1) + i*dimension+1] = coord_system[1][1];
+			/*We remove the z component, we need to renormalize x and y*/
+			x_norm = sqrt( coord_system[0][0]*coord_system[0][0] + coord_system[1][0]*coord_system[1][0]);
+			y_norm = sqrt( coord_system[0][1]*coord_system[0][1] + coord_system[1][1]*coord_system[1][1]);
+			transform[(dimension*numnodes)*(i*dimension+0) + i*dimension+0] = coord_system[0][0]/x_norm;
+			transform[(dimension*numnodes)*(i*dimension+0) + i*dimension+1] = coord_system[0][1]/y_norm;
+			transform[(dimension*numnodes)*(i*dimension+1) + i*dimension+0] = coord_system[1][0]/x_norm;
+			transform[(dimension*numnodes)*(i*dimension+1) + i*dimension+1] = coord_system[1][1]/y_norm;
 		}
 		else if(dimension==3){
