Index: /issm/trunk/src/c/DataSet/DataSet.cpp
===================================================================
--- /issm/trunk/src/c/DataSet/DataSet.cpp	(revision 3788)
+++ /issm/trunk/src/c/DataSet/DataSet.cpp	(revision 3789)
@@ -300,6 +300,42 @@
 			dataset->AddObject(riftfront);
 		}
+		else if(enum_type==DoubleInputEnum){
+			DoubleInput* doubleinput=NULL;
+			doubleinput=new DoubleInput();
+			doubleinput->Demarshall(&marshalled_dataset);
+			dataset->AddObject(doubleinput);
+		}
+		else if(enum_type==IntInputEnum){
+			IntInput* intinput=NULL;
+			intinput=new IntInput();
+			intinput->Demarshall(&marshalled_dataset);
+			dataset->AddObject(intinput);
+		}
+		else if(enum_type==BoolInputEnum){
+			BoolInput* boolinput=NULL;
+			boolinput=new BoolInput();
+			boolinput->Demarshall(&marshalled_dataset);
+			dataset->AddObject(boolinput);
+		}
+		else if(enum_type==IntParamEnum){
+			IntParam* intparam=NULL;
+			intparam=new IntParam();
+			intparam->Demarshall(&marshalled_dataset);
+			dataset->AddObject(intparam);
+		}
+		else if(enum_type==BoolParamEnum){
+			BoolParam* boolparam=NULL;
+			boolparam=new BoolParam();
+			boolparam->Demarshall(&marshalled_dataset);
+			dataset->AddObject(boolparam);
+		}
+		else if(enum_type==StringParamEnum){
+			StringParam* stringparam=NULL;
+			stringparam=new StringParam();
+			stringparam->Demarshall(&marshalled_dataset);
+			dataset->AddObject(stringparam);
+		}
 		else{
-			ISSMERROR("%s%i"," could not recognize enum type: ",enum_type);
+			ISSMERROR("could not recognize enum type: %i (%s)",enum_type,EnumAsString(enum_type));
 		}
 
