Index: /issm/trunk/src/c/objects/Elements/Penta.cpp
===================================================================
--- /issm/trunk/src/c/objects/Elements/Penta.cpp	(revision 10380)
+++ /issm/trunk/src/c/objects/Elements/Penta.cpp	(revision 10381)
@@ -5579,4 +5579,7 @@
 	}
 
+	/*Transform Coordinate System*/
+	tria->TransformStiffnessMatrixCoord(Ke,2);
+
 	/*Clean up and return*/
 	delete tria->matice;
@@ -5707,4 +5710,7 @@
 					&Ke->values[0],1);
 	}
+
+	/*Transform Coordinate System*/
+	TransformStiffnessMatrixCoord(Ke,2);
 
 	/*Clean up and return*/
@@ -5778,4 +5784,7 @@
 					&Ke->values[0],1);
 	}
+
+	/*Transform Coordinate System*/
+	TransformStiffnessMatrixCoord(Ke,2);
 
 	/*Clean up and return*/
@@ -6573,4 +6582,7 @@
 	}
 
+	/*Transform coordinate system*/
+	TransformLoadVectorCoord(pe,2);
+
 	/*Clean up and return*/
 	delete gauss;
@@ -7329,4 +7341,5 @@
 	double rho_ice,g;
 	double values[numdof];
+	double values0[numdof];
 	double vx[NUMVERTICES];
 	double vy[NUMVERTICES];
@@ -7345,5 +7358,8 @@
 
 	/*Use the dof list to index into the solution vector: */
-	for(i=0;i<numdof;i++) values[i]=solution[doflist[i]];
+	for(i=0;i<numdof;i++) values0[i]=solution[doflist[i]];
+
+	/*Transform solution in Cartesian Space*/
+	TransformSolutionCoord(&values[0],&values0[0],2);
 
 	/*Ok, we have vx and vy in values, fill in vx and vy arrays: */
@@ -7763,9 +7779,9 @@
 	int     i,j;
 	int     numnodes;
-	double *transform         = NULL;
+	double *transform = NULL;
 
 	/*Get Coordinate Systems transform matrix*/
-	if(is2d) numnodes=NUMVERTICES;
-	else     numnodes=NUMVERTICES2D;
+	if(is2d) numnodes=NUMVERTICES2D;
+	else     numnodes=NUMVERTICES;
 	CoordinateSystemTransform(&transform,nodes,numnodes,dim);
 
Index: /issm/trunk/src/c/objects/Elements/Tria.cpp
===================================================================
--- /issm/trunk/src/c/objects/Elements/Tria.cpp	(revision 10380)
+++ /issm/trunk/src/c/objects/Elements/Tria.cpp	(revision 10381)
@@ -2643,5 +2643,4 @@
 	ElementMatrix* Ke2=CreateKMatrixDiagnosticMacAyealFriction();
 	ElementMatrix* Ke =new ElementMatrix(Ke1,Ke2);
-	TransformStiffnessMatrixCoord(Ke,2);
 	
 	/*clean-up and return*/
@@ -2706,4 +2705,7 @@
 					&Ke->values[0],1);
 	}
+
+	/*Transform Coordinate System*/
+	TransformStiffnessMatrixCoord(Ke,2);
 
 	/*Clean up and return*/
@@ -2771,4 +2773,7 @@
 					&Ke->values[0],1);
 	}
+
+	/*Transform Coordinate System*/
+	TransformStiffnessMatrixCoord(Ke,2);
 
 	/*Clean up and return*/
Index: /issm/trunk/src/c/objects/Loads/Icefront.cpp
===================================================================
--- /issm/trunk/src/c/objects/Loads/Icefront.cpp	(revision 10380)
+++ /issm/trunk/src/c/objects/Loads/Icefront.cpp	(revision 10381)
@@ -528,6 +528,7 @@
 		}
 	}
+
 	/*Transform load vector*/
-	TransformLoadVectorCoord(pe,2);
+	TransformLoadVectorCoord(pe,NUMVERTICESSEG,2);
 
 	/*Clean up and return*/
@@ -537,7 +538,6 @@
 /*}}}*/
 /*FUNCTION Icefront::TransformLoadVectorCoord{{{1*/
-void Icefront::TransformLoadVectorCoord(ElementVector* pe,int dim){
-
-	int     numnodes          = 2;
+void Icefront::TransformLoadVectorCoord(ElementVector* pe,int numnodes,int dimension){
+
 	double *transform         = NULL;
 	double *values            = NULL;
@@ -548,8 +548,8 @@
 
 	/*Get Coordinate Systems transform matrix*/
-	CoordinateSystemTransform(&transform,nodes,numnodes,dim);
+	CoordinateSystemTransform(&transform,nodes,numnodes,dimension);
 
 	/*Transform matrix: T*pe */
-	MatrixMultiply(transform,numnodes*dim,numnodes*dim,1,
+	MatrixMultiply(transform,numnodes*dimension,numnodes*dimension,1,
 				values,pe->nrows,1,0,
 				&pe->values[0],0);
@@ -668,4 +668,7 @@
 	}
 
+	/*Transform load vector*/
+	TransformLoadVectorCoord(pe,NUMVERTICESQUA,2);
+
 	/*Clean up and return*/
 	delete gauss;
@@ -743,4 +746,7 @@
 	}
 
+	/*Transform load vector*/
+	TransformLoadVectorCoord(pe,NUMVERTICESQUA,3);
+
 	/*Clean up and return*/
 	delete gauss;
Index: /issm/trunk/src/c/objects/Loads/Icefront.h
===================================================================
--- /issm/trunk/src/c/objects/Loads/Icefront.h	(revision 10380)
+++ /issm/trunk/src/c/objects/Loads/Icefront.h	(revision 10381)
@@ -83,5 +83,5 @@
 		void GetSegmentNormal(double* normal,double xyz_list[2][3]);
 		void GetQuadNormal(double* normal,double xyz_list[4][3]);
-		void TransformLoadVectorCoord(ElementVector* pe,int dim);
+		void TransformLoadVectorCoord(ElementVector* pe,int numnodes,int dimension);
 		#ifdef _HAVE_CONTROL_
 		ElementVector* CreatePVectorAdjointHoriz(void);
