Index: /issm/trunk-jpl/src/c/classes/DependentObject.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/DependentObject.cpp	(revision 25523)
+++ /issm/trunk-jpl/src/c/classes/DependentObject.cpp	(revision 25524)
@@ -77,4 +77,17 @@
 }
 /*}}}*/
+void    DependentObject::Marshall(MarshallHandle* marshallhandle){/*{{{*/
+
+	int object_enum = DependentObjectEnum;
+	marshallhandle->call(object_enum);
+
+	/*Marshall name (tricky)*/
+	marshallhandle->call(this->name);
+
+	marshallhandle->call(this->type);
+	marshallhandle->call(this->index);
+	marshallhandle->call(this->response_value);
+}
+/*}}}*/
 
 /*DependentObject methods: */
Index: /issm/trunk-jpl/src/c/classes/DependentObject.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/DependentObject.h	(revision 25523)
+++ /issm/trunk-jpl/src/c/classes/DependentObject.h	(revision 25524)
@@ -34,5 +34,5 @@
 		int   Id(); 
 		int   ObjectEnum();
-		void  Marshall(MarshallHandle* marshallhandle){_error_("not implemented yet!"); };
+		void  Marshall(MarshallHandle* marshallhandle);
 
 		/*DependentObject methods: */
Index: /issm/trunk-jpl/src/c/classes/Params/Parameters.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Params/Parameters.cpp	(revision 25523)
+++ /issm/trunk-jpl/src/c/classes/Params/Parameters.cpp	(revision 25524)
@@ -117,5 +117,5 @@
 	marshallhandle->call(obj_enum);
 
-	if(marshallhandle->OperationNumber()==MARSHALLING_WRITE || marshallhandle->OperationNumber()==MARSHALLING_SIZE){
+	if(marshallhandle->OperationNumber()!=MARSHALLING_LOAD){
 
 		/*Marshall num_params first*/
Index: /issm/trunk-jpl/src/c/classes/Params/StringArrayParam.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Params/StringArrayParam.cpp	(revision 25523)
+++ /issm/trunk-jpl/src/c/classes/Params/StringArrayParam.cpp	(revision 25524)
@@ -75,11 +75,4 @@
 void StringArrayParam::Marshall(MarshallHandle* marshallhandle){ /*{{{*/
 
-	int* sizes=NULL;
-
-	if(marshallhandle->OperationNumber()==MARSHALLING_WRITE || marshallhandle->OperationNumber()==MARSHALLING_SIZE){
-		if(this->numstrings)sizes=xNew<int>(this->numstrings);
-		for(int i=0;i<numstrings;i++)sizes[i]=strlen(this->value[i])+1;
-	}	
-
 	int object_enum = StringArrayParamEnum;
    marshallhandle->call(object_enum);
@@ -89,19 +82,14 @@
 
 	if(this->numstrings){
-		marshallhandle->call(sizes,this->numstrings);
 		if(marshallhandle->OperationNumber()==MARSHALLING_LOAD){
 			this->value=xNew<char*>(this->numstrings);
 		}
 		for(int i=0;i<numstrings;i++){
-			marshallhandle->call(this->value[i],sizes[i]);
+			marshallhandle->call(this->value[i]);
 		}
 	}
 	else{
-		value=NULL;
+		this->value=NULL;
 	}
-
-	//cleanup sizes array
-	if(sizes) xDelete<int>(sizes);
-
 }
 /*}}}*/
Index: /issm/trunk-jpl/src/c/classes/Params/StringParam.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Params/StringParam.cpp	(revision 25523)
+++ /issm/trunk-jpl/src/c/classes/Params/StringParam.cpp	(revision 25524)
@@ -52,15 +52,8 @@
 void StringParam::Marshall(MarshallHandle* marshallhandle){ /*{{{*/
 
-	int size = 0;
-	if(marshallhandle->OperationNumber()==MARSHALLING_WRITE || marshallhandle->OperationNumber() == MARSHALLING_SIZE){
-		size=strlen(value)+1;
-	}
-
 	int object_enum = StringParamEnum;
    marshallhandle->call(object_enum);
-
 	marshallhandle->call(this->enum_type);
-	marshallhandle->call(size);
-	marshallhandle->call(this->value,size);
+	marshallhandle->call(this->value);
 }
 /*}}}*/
