Index: /issm/trunk/src/mex/InternalFront/InternalFront.cpp
===================================================================
--- /issm/trunk/src/mex/InternalFront/InternalFront.cpp	(revision 7330)
+++ /issm/trunk/src/mex/InternalFront/InternalFront.cpp	(revision 7331)
@@ -13,10 +13,8 @@
 	int*    front=NULL;
 	double* front2=NULL;
-	int     numberofelements;
+	bool    found;
+	int     numberofelements,numberofsegments;
 	int     N,M;
-	int     numberofsegments;
-	int     id,node1,node2,temp_node;
-	int     i,j,ii,jj;
-	int     i0,i1;
+	int     i,j,ii,jj,id;
 
 	/*Boot module: */
@@ -55,35 +53,27 @@
 
 			/*We have an ice front to add here, let's go!*/
-			node1=node2=0;
 			for(ii=0;ii<3;ii++){
+
+				found=false;
 				for(jj=0;jj<3;jj++){
 					if(elements[(id-1)*3+ii]==elements[i*3+jj]){
-						if(node1==0){
-							node1=elements[(id-1)*3+ii];
-							i0=jj;
-						}
-						else{
-							node2=elements[(id-1)*3+ii];
-							i1=jj;
-
-							/*Now, we have node1 and node2. Make sure they are in the trigonometric 
-							 * orientation, so that the normals points to the right direction: */
-							if (!((i0==0 && i1==2) ||  (i0==1 && i1==0) || (i0==2 && i1==1))){
-								/*swap: */
-								temp_node=node2;
-								node2=node1;
-								node1=temp_node;
-							}
-							break;
-						}
+						found=true;
+						break;
 					}
 				}
+
+				/*OK, we just found the node of id, which is not in i. We have the segment*/
+				if(!found){
+					front[numberofsegments*4+0]=elements[(id-1)*3+(ii+1)%3];
+					front[numberofsegments*4+1]=elements[(id-1)*3+(ii+2)%3];
+					front[numberofsegments*4+2]=id;
+					front[numberofsegments*4+3]=IceEnum;
+					numberofsegments+=1;
+					break;
+				}
 			}
-			_assert_(node1 && node2);
-			front[numberofsegments*4+0]=node1;
-			front[numberofsegments*4+1]=node2;
-			front[numberofsegments*4+2]=id;
-			front[numberofsegments*4+3]=IceEnum;
-			numberofsegments+=1;
+
+			/*In debugging mode, check that the segment has been found*/
+			_assert_(!found);
 		}
 	}
