Index: /issm/trunk/src/c/objects/Node.cpp
===================================================================
--- /issm/trunk/src/c/objects/Node.cpp	(revision 6031)
+++ /issm/trunk/src/c/objects/Node.cpp	(revision 6032)
@@ -332,4 +332,5 @@
 	int i;
 	int count=0;
+	int count2=0;
 		
 	if(approximation_enum==NoneApproximationEnum){
@@ -349,5 +350,5 @@
 					}
 				}
-				ISSMASSERT(count);
+				ISSMASSERT(count); //at least one dof should be the approximation requested
 			}
 			else for(i=0;i<this->indexing.gsize;i++) outdoflist[i]=indexing.gdoflist[i];
@@ -356,11 +357,14 @@
 			if(indexing.doftype){
 				count=0;
-				for(i=0;i<this->indexing.gsize;i++){
-					if((indexing.doftype[i]==approximation_enum) && (indexing.f_set[i])){
-						outdoflist[count]=indexing.fdoflist[i];
-						count++;
+				count2=0;
+				for(i=0;i<this->indexing.gsize;i++){
+					if(indexing.f_set[i]){
+						if(indexing.doftype[i]==approximation_enum){
+							outdoflist[count]=indexing.fdoflist[count2];
+							count++;
+						}
+						count2++;
 					}
 				}
-				ISSMASSERT(count);
 			}
 			else for(i=0;i<this->indexing.fsize;i++) outdoflist[i]=indexing.fdoflist[i];
@@ -369,11 +373,14 @@
 			if(indexing.doftype){
 				count=0;
-				for(i=0;i<this->indexing.gsize;i++){
-					if((indexing.doftype[i]==approximation_enum) && (indexing.s_set[i])){
-						outdoflist[count]=indexing.sdoflist[i];
-						count++;
+				count2=0;
+				for(i=0;i<this->indexing.gsize;i++){
+					if(indexing.s_set[i]){
+						if(indexing.doftype[i]==approximation_enum){
+							outdoflist[count]=indexing.sdoflist[count2];
+							count++;
+						}
+						count2++;
 					}
 				}
-				ISSMASSERT(count);
 			}
 			else for(i=0;i<this->indexing.ssize;i++) outdoflist[i]=indexing.sdoflist[i];
@@ -432,11 +439,13 @@
 				count2=0;
 				for(i=0;i<this->indexing.gsize;i++){
-					if((indexing.doftype[i]==approximation_enum) && (indexing.f_set[i])){
-						outdoflist[count]=count2;
-						count++;
+					if(indexing.doftype[i]==approximation_enum){
+						if(indexing.f_set[i]){
+							outdoflist[count]=count2;
+							count++;
+						}
+						count2++;
 					}
-					if(indexing.doftype[i]==approximation_enum)count2++;
-				}
-				ISSMASSERT(count);
+				}
+				ISSMASSERT(count2);
 			}
 			else{
@@ -456,11 +465,13 @@
 				count2=0;
 				for(i=0;i<this->indexing.gsize;i++){
-					if((indexing.doftype[i]==approximation_enum) && (indexing.s_set[i])){
-						outdoflist[count]=count2;
-						count++;
+					if(indexing.doftype[i]==approximation_enum){
+						if(indexing.s_set[i]){
+							outdoflist[count]=count2;
+							count++;
+						}
+						count2++;
 					}
-					if(indexing.doftype[i]==approximation_enum)count2++;
-				}
-				ISSMASSERT(count);
+				}
+				ISSMASSERT(count2);
 			}
 			else{
