Index: /issm/trunk-jpl/src/c/classes/Inputs/Inputs.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Inputs/Inputs.cpp	(revision 26169)
+++ /issm/trunk-jpl/src/c/classes/Inputs/Inputs.cpp	(revision 26170)
@@ -157,4 +157,9 @@
 				this->inputs[index]=input;
 			}
+			else if(object_enum==TransientInputEnum){
+				TransientInput* input=new TransientInput();
+				input->Marshall(marshallhandle);
+				this->inputs[index]=input;
+			}
 			else{
 				_error_("input "<<EnumToStringx(object_enum)<<" not supported");
Index: /issm/trunk-jpl/src/c/classes/Inputs/TransientInput.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Inputs/TransientInput.cpp	(revision 26169)
+++ /issm/trunk-jpl/src/c/classes/Inputs/TransientInput.cpp	(revision 26170)
@@ -119,17 +119,54 @@
 void TransientInput::Marshall(MarshallHandle* marshallhandle){ /*{{{*/
 
-	if (marshallhandle->OperationNumber() == MARSHALLING_LOAD){
-		_error_("not implmented");
-		//inputs = new Inputs();
-	}
-
 	int object_enum = TransientInputEnum;
    marshallhandle->call(object_enum);
 
+	marshallhandle->call(this->numberofelements_local);
+	marshallhandle->call(this->numberofvertices_local);
 	marshallhandle->call(this->enum_type);
 	marshallhandle->call(this->numtimesteps);
 	marshallhandle->call(this->timesteps,numtimesteps);
-	//inputs->Marshall(marshallhandle);
-	_error_("not implemented");
+
+	/*Allocate memory if need be*/
+	if(marshallhandle->OperationNumber() == MARSHALLING_LOAD){
+		int N = this->numtimesteps; _assert_(N>=0 && N<1e6);
+		if(N){
+			this->inputs = xNew<Input*>(N);
+			for(int i=0;i<N;i++) this->inputs[i] = NULL;
+		}
+		else{
+			this->inputs = NULL;
+		}
+	}
+
+	/*Marshall!*/
+	if(marshallhandle->OperationNumber()!=MARSHALLING_LOAD){
+		for(int i=0;i<this->numtimesteps;i++){
+			_assert_(this->inputs[i]);
+			object_enum = this->inputs[i]->ObjectEnum();
+			marshallhandle->call(object_enum);
+			this->inputs[i]->Marshall(marshallhandle);
+		}
+	}
+	else{
+		for(int i=0;i<this->numtimesteps;i++){
+			marshallhandle->call(object_enum);
+
+			if(object_enum==TriaInputEnum){
+				TriaInput* triainput2=new TriaInput();
+				triainput2->Marshall(marshallhandle);
+				this->inputs[i]=triainput2;
+			}
+			else if(object_enum==PentaInputEnum){
+				PentaInput* pentainput2=new PentaInput();
+				pentainput2->Marshall(marshallhandle);
+				this->inputs[i]=pentainput2;
+			}
+			else{
+				_error_("input "<<EnumToStringx(object_enum)<<" not supported");
+			}
+		}
+	}
+
 }
 /*}}}*/
