Index: /issm/trunk/src/c/objects/ElementProperties.cpp
===================================================================
--- /issm/trunk/src/c/objects/ElementProperties.cpp	(revision 3395)
+++ /issm/trunk/src/c/objects/ElementProperties.cpp	(revision 3396)
@@ -265,10 +265,11 @@
 	char* marshalled_dataset=NULL;
 	int   nonnill=0;
+	int   enum_type;
 
 	/*recover marshalled_dataset: */
 	marshalled_dataset=*pmarshalled_dataset;
 
-	/*this time, no need to get enum type, the pointer directly points to the beginning of the 
-	 *object data (thanks to DataSet::Demarshall):*/
+	/* Recover enum_type as ElementProperties is not directly called by dataset */
+	memcpy(&enum_type,marshalled_dataset,sizeof(int)); marshalled_dataset+=sizeof(int);
 
 	memcpy(&numnodes,marshalled_dataset,sizeof(numnodes));marshalled_dataset+=sizeof(numnodes);
Index: /issm/trunk/src/c/objects/Hook.cpp
===================================================================
--- /issm/trunk/src/c/objects/Hook.cpp	(revision 3395)
+++ /issm/trunk/src/c/objects/Hook.cpp	(revision 3396)
@@ -141,10 +141,11 @@
 	char* marshalled_dataset=NULL;
 	int   i;
+	int   enum_type;
 
 	/*recover marshalled_dataset: */
 	marshalled_dataset=*pmarshalled_dataset;
 
-	/*this time, no need to get enum type, the pointer directly points to the beginning of the 
-	 *object data (thanks to DataSet::Demarshall):*/
+	/*get enum type of object since Hook is not directly called by DataSet: */
+	memcpy(&enum_type,marshalled_dataset,sizeof(int)); marshalled_dataset+=sizeof(int);
 
 	memcpy(&num,marshalled_dataset,sizeof(num));marshalled_dataset+=sizeof(num);
