Index: /issm/trunk-jpl/src/c/classes/Elements/Penta.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Penta.cpp	(revision 22646)
+++ /issm/trunk-jpl/src/c/classes/Elements/Penta.cpp	(revision 22647)
@@ -24,6 +24,6 @@
 }
 /*}}}*/
-Penta::Penta(int penta_id, int penta_sid, int index, IoModel* iomodel,int nummodels)/*{{{*/
-	:ElementHook(nummodels,index+1,NUMVERTICES,iomodel){
+Penta::Penta(int penta_id, int penta_sid,IoModel* iomodel,int nummodels)/*{{{*/
+	:ElementHook(nummodels,penta_id,NUMVERTICES,iomodel){
 
 	int penta_elements_ids[2];
@@ -38,8 +38,8 @@
 
 	/*Build neighbors list*/
-	if (xIsNan<IssmDouble>(iomodel->Data("md.mesh.upperelements")[index]) || iomodel->Data("md.mesh.upperelements")[index]==-1.) penta_elements_ids[1]=this->id; //upper penta is the same penta
-	else                                    penta_elements_ids[1]=reCast<int,IssmDouble>((iomodel->Data("md.mesh.upperelements")[index]));
-	if (xIsNan<IssmDouble>(iomodel->Data("md.mesh.lowerelements")[index]) || iomodel->Data("md.mesh.lowerelements")[index]==-1.) penta_elements_ids[0]=this->id; //lower penta is the same penta
-	else                                    penta_elements_ids[0]=reCast<int,IssmDouble>((iomodel->Data("md.mesh.lowerelements")[index]));
+	if (xIsNan<IssmDouble>(iomodel->Data("md.mesh.upperelements")[penta_sid]) || iomodel->Data("md.mesh.upperelements")[penta_sid]==-1.) penta_elements_ids[1]=this->id; //upper penta is the same penta
+	else                                    penta_elements_ids[1]=reCast<int,IssmDouble>((iomodel->Data("md.mesh.upperelements")[penta_sid]));
+	if (xIsNan<IssmDouble>(iomodel->Data("md.mesh.lowerelements")[penta_sid]) || iomodel->Data("md.mesh.lowerelements")[penta_sid]==-1.) penta_elements_ids[0]=this->id; //lower penta is the same penta
+	else                                    penta_elements_ids[0]=reCast<int,IssmDouble>((iomodel->Data("md.mesh.lowerelements")[penta_sid]));
 	this->InitHookNeighbors(penta_elements_ids);
 
@@ -2801,4 +2801,5 @@
 	/*Checks if debuging*/
 	_assert_(iomodel->elements);
+	_assert_(index==this->sid); 
 
 	/*Recover element type*/
Index: /issm/trunk-jpl/src/c/classes/Elements/Penta.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Penta.h	(revision 22646)
+++ /issm/trunk-jpl/src/c/classes/Elements/Penta.h	(revision 22647)
@@ -36,5 +36,5 @@
 		/*Penta constructors and destructor: {{{*/
 		Penta(){};
-		Penta(int penta_id,int penta_sid,int i, IoModel* iomodel,int nummodels);
+		Penta(int penta_id,int penta_sid,IoModel* iomodel,int nummodels);
 		~Penta();
 		/*}}}*/
Index: /issm/trunk-jpl/src/c/classes/Elements/Seg.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Seg.cpp	(revision 22646)
+++ /issm/trunk-jpl/src/c/classes/Elements/Seg.cpp	(revision 22647)
@@ -19,6 +19,6 @@
 #define NUMVERTICES 2
 /*Constructors/destructor/copy*/
-Seg::Seg(int seg_id, int seg_sid, int index, IoModel* iomodel,int nummodels)/*{{{*/
-		:ElementHook(nummodels,index+1,NUMVERTICES,iomodel){
+Seg::Seg(int seg_id, int seg_sid,IoModel* iomodel,int nummodels)/*{{{*/
+		:ElementHook(nummodels,seg_id,NUMVERTICES,iomodel){
 
 			/*id: */
Index: /issm/trunk-jpl/src/c/classes/Elements/Seg.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Seg.h	(revision 22646)
+++ /issm/trunk-jpl/src/c/classes/Elements/Seg.h	(revision 22647)
@@ -32,5 +32,5 @@
 		/*Seg constructors, destructors {{{*/
 		Seg(){};
-		Seg(int seg_id,int seg_sid,int i, IoModel* iomodel,int nummodels);
+		Seg(int seg_id,int seg_sid,IoModel* iomodel,int nummodels);
 		~Seg();
 		/*}}}*/
Index: /issm/trunk-jpl/src/c/classes/Elements/Tetra.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Tetra.cpp	(revision 22646)
+++ /issm/trunk-jpl/src/c/classes/Elements/Tetra.cpp	(revision 22647)
@@ -20,10 +20,10 @@
 
 /*Constructors/destructor/copy*/
-Tetra::Tetra(int seg_id, int seg_sid, int index, IoModel* iomodel,int nummodels)/*{{{*/
-		:ElementHook(nummodels,index+1,NUMVERTICES,iomodel){
+Tetra::Tetra(int tet_id, int tet_sid,IoModel* iomodel,int nummodels)/*{{{*/
+		:ElementHook(nummodels,tet_id,NUMVERTICES,iomodel){
 
 			/*id: */
-			this->id  = seg_id;
-			this->sid = seg_sid;
+			this->id  = tet_id;
+			this->sid = tet_sid;
 
 			//this->parameters: we still can't point to it, it may not even exist. Configure will handle this.
@@ -904,4 +904,5 @@
 	/*Checks if debuging*/
 	_assert_(iomodel->elements);
+	_assert_(index==this->sid); 
 
 	/*Recover element type*/
Index: /issm/trunk-jpl/src/c/classes/Elements/Tetra.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Tetra.h	(revision 22646)
+++ /issm/trunk-jpl/src/c/classes/Elements/Tetra.h	(revision 22647)
@@ -32,5 +32,5 @@
 		/*Tetra constructors, destructors {{{*/
 		Tetra(){};
-		Tetra(int seg_id,int seg_sid,int i, IoModel* iomodel,int nummodels);
+		Tetra(int tet_id,int tet_sid,IoModel* iomodel,int nummodels);
 		~Tetra();
 		/*}}}*/
Index: /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 22646)
+++ /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 22647)
@@ -25,6 +25,6 @@
 
 /*Constructors/destructor/copy*/
-Tria::Tria(int tria_id, int tria_sid, int index, IoModel* iomodel,int nummodels)/*{{{*/
-	:ElementHook(nummodels,index+1,NUMVERTICES,iomodel){
+Tria::Tria(int tria_id, int tria_sid, IoModel* iomodel,int nummodels)/*{{{*/
+	:ElementHook(nummodels,tria_id,NUMVERTICES,iomodel){
 
 		/*id: */
@@ -3604,4 +3604,5 @@
 	/*Checks if debuging*/
 	_assert_(iomodel->elements);
+	_assert_(index==this->sid); 
 
 	/*Recover element type*/
Index: /issm/trunk-jpl/src/c/classes/Elements/Tria.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Tria.h	(revision 22646)
+++ /issm/trunk-jpl/src/c/classes/Elements/Tria.h	(revision 22647)
@@ -34,5 +34,5 @@
 		/*Tria constructors, destructors {{{*/
 		Tria(){};
-		Tria(int tria_id,int tria_sid,int i, IoModel* iomodel,int nummodels);
+		Tria(int tria_id,int tria_sid,IoModel* iomodel,int nummodels);
 		~Tria();
 		/*}}}*/
Index: /issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateElementsVerticesAndMaterials.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateElementsVerticesAndMaterials.cpp	(revision 22646)
+++ /issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateElementsVerticesAndMaterials.cpp	(revision 22647)
@@ -37,10 +37,10 @@
 		case TriaEnum:
 			for(i=0;i<iomodel->numberofelements;i++){
-				if(iomodel->my_elements[i]) elements->AddObject(new Tria(i+1,i,i,iomodel,nummodels));
+				if(iomodel->my_elements[i]) elements->AddObject(new Tria(i+1,i,iomodel,nummodels));
 			}
 			break;
 		case TetraEnum:
 			for(i=0;i<iomodel->numberofelements;i++){
-				if(iomodel->my_elements[i]) elements->AddObject(new Tetra(i+1,i,i,iomodel,nummodels));
+				if(iomodel->my_elements[i]) elements->AddObject(new Tetra(i+1,i,iomodel,nummodels));
 			}
 			break;
@@ -48,5 +48,5 @@
 			iomodel->FetchData(2,"md.mesh.upperelements","md.mesh.lowerelements");
 			for(i=0;i<iomodel->numberofelements;i++){
-				if(iomodel->my_elements[i]) elements->AddObject(new Penta(i+1,i,i,iomodel,nummodels));
+				if(iomodel->my_elements[i]) elements->AddObject(new Penta(i+1,i,iomodel,nummodels));
 			}
 			break;
