Index: /issm/trunk-jpl/src/c/classes/ExternalResults/GenericExternalResult.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/ExternalResults/GenericExternalResult.h	(revision 25530)
+++ /issm/trunk-jpl/src/c/classes/ExternalResults/GenericExternalResult.h	(revision 25531)
@@ -58,23 +58,10 @@
 			marshallhandle->call(object_enum);
 			marshallhandle->call(this->id);
+			marshallhandle->call(this->result_name);
+			marshallhandle->call(this->M);
+			marshallhandle->call(this->N);
 			marshallhandle->call(this->step);
 			marshallhandle->call(this->time);
-
-			/*Marshal result name*/
-			int size = 0;
-			if(marshallhandle->OperationNumber()!=MARSHALLING_LOAD) size=strlen(result_name)+1;
-			marshallhandle->call(size);
-			marshallhandle->call(this->result_name,size);
-
-			/*Marshall value*/
-			this->value=0;
-			bool isnull=true;
-			if(marshallhandle->OperationNumber()!=MARSHALLING_LOAD){
-				if(value) isnull=false;
-			}
-			marshallhandle->call(isnull);
-			if(!isnull){
-				marshallhandle->call(this->value);
-			}
+			marshallhandle->call(this->value);
 		}  /*}}}*/
 
@@ -257,5 +244,4 @@
 } /*}}}*/
 template <> inline void GenericExternalResult<int>::Marshall(MarshallHandle* marshallhandle){/*{{{*/
-	printf("-------------- file: GenericExternalResult.h line: %i\n",__LINE__); 
 	this->GenericMarshall(marshallhandle);
 }  /*}}}*/
@@ -276,5 +262,4 @@
 } /*}}}*/
 template <> inline void GenericExternalResult<double>::Marshall(MarshallHandle* marshallhandle){/*{{{*/
-	printf("-------------- file: GenericExternalResult.h line: %i\n",__LINE__); 
 	this->GenericMarshall(marshallhandle);
 }  /*}}}*/
Index: /issm/trunk-jpl/src/c/classes/Params/GenericParam.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Params/GenericParam.h	(revision 25530)
+++ /issm/trunk-jpl/src/c/classes/Params/GenericParam.h	(revision 25531)
@@ -53,5 +53,7 @@
                 // use the default copy constructor instead
 					 void Marshall(MarshallHandle* marshallhandle){
-						 _printf_("   WARNING: parameter "<<EnumToStringx(this->myEnumVal)<<" is a GenericParam and cannot be marshalled\n");
+						 if(this->InstanceEnum()!=FemModelCommEnum){
+							 _printf_("   WARNING: parameter "<<EnumToStringx(this->myEnumVal)<<" is a GenericParam and cannot be marshalled\n");
+						 }
 						 /*Nothing for now*/
 					 }
Index: /issm/trunk-jpl/src/c/datastructures/DataSet.cpp
===================================================================
--- /issm/trunk-jpl/src/c/datastructures/DataSet.cpp	(revision 25530)
+++ /issm/trunk-jpl/src/c/datastructures/DataSet.cpp	(revision 25531)
@@ -241,4 +241,14 @@
 				_printf_("   WARNING: Could not load GenericExternalResult, need overload\n");
 			}
+			else if(obj_enum==IntExternalResultEnum){
+				GenericExternalResult<int>* res=new GenericExternalResult<int>();
+				res->Marshall(marshallhandle);
+				this->AddObject(res);
+			}
+			else if(obj_enum==DoubleExternalResultEnum){
+				GenericExternalResult<double>* res=new GenericExternalResult<double>();
+				res->Marshall(marshallhandle);
+				this->AddObject(res);
+			}
 			else _error_("could not recognize enum type: " << obj_enum << ": " << EnumToStringx(obj_enum) ); 
 		}
Index: /issm/trunk-jpl/src/c/solutionsequences/solutionsequence_nonlinear.cpp
===================================================================
--- /issm/trunk-jpl/src/c/solutionsequences/solutionsequence_nonlinear.cpp	(revision 25530)
+++ /issm/trunk-jpl/src/c/solutionsequences/solutionsequence_nonlinear.cpp	(revision 25531)
@@ -104,5 +104,5 @@
 		count++;
 		if(converged==true){
-			femmodel->results->AddResult(new GenericExternalResult<IssmDouble>(femmodel->results->Size()+1,StressbalanceConvergenceNumStepsEnum,count));
+			femmodel->results->AddResult(new GenericExternalResult<int>(femmodel->results->Size()+1,StressbalanceConvergenceNumStepsEnum,count));
 			break;
 		}
@@ -110,5 +110,5 @@
 			_printf0_("   maximum number of nonlinear iterations (" << max_nonlinear_iterations << ") exceeded\n"); 
 			converged=true;
-			femmodel->results->AddResult(new GenericExternalResult<IssmDouble>(femmodel->results->Size()+1,StressbalanceConvergenceNumStepsEnum,max_nonlinear_iterations));
+			femmodel->results->AddResult(new GenericExternalResult<int>(femmodel->results->Size()+1,StressbalanceConvergenceNumStepsEnum,max_nonlinear_iterations));
 			InputUpdateFromConstantx(femmodel,converged,ConvergedEnum);
 			InputUpdateFromSolutionx(femmodel,ug);		
