Index: /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 17854)
+++ /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 17855)
@@ -1665,9 +1665,11 @@
 
 	/*Build unit outward pointing vector*/
+	int index1,index2;
 	IssmDouble vector[2];
 	IssmDouble norm;
 
-	vector[0]=xyz_list[1*3+0] - xyz_list[0*3+0];
-	vector[1]=xyz_list[1*3+1] - xyz_list[0*3+1];
+	this->EdgeOnBaseIndices(&index1,&index2);
+	vector[0]=xyz_list[index2*3+0] - xyz_list[index1*3+0];
+	vector[1]=xyz_list[index2*3+1] - xyz_list[index1*3+1];
 
 	norm=sqrt(vector[0]*vector[0] + vector[1]*vector[1]);
@@ -1681,9 +1683,11 @@
 
 	/*Build unit outward pointing vector*/
+	int index1,index2;
 	IssmDouble vector[2];
 	IssmDouble norm;
 
-	vector[0]=xyz_list[1*3+0] - xyz_list[0*3+0];
-	vector[1]=xyz_list[1*3+1] - xyz_list[0*3+1];
+	this->EdgeOnSurfaceIndices(&index1,&index2);
+	vector[0]=xyz_list[index2*3+0] - xyz_list[index1*3+0];
+	vector[1]=xyz_list[index2*3+1] - xyz_list[index1*3+1];
 
 	norm=sqrt(vector[0]*vector[0] + vector[1]*vector[1]);
