Index: /issm/trunk/src/c/DataSet/DataSet.cpp
===================================================================
--- /issm/trunk/src/c/DataSet/DataSet.cpp	(revision 3471)
+++ /issm/trunk/src/c/DataSet/DataSet.cpp	(revision 3472)
@@ -909,5 +909,5 @@
 		if((*object)->Enum()==NodeEnum()){
 
-			dofobject=(DofObject*)(*object);
+			dofobject=dynamic_cast<DofObject*>(*object);
 			dofobject->CreatePartition(partition);
 		}
@@ -963,7 +963,7 @@
 	for ( object=objects.begin() ; object < objects.end(); object++ ){
 
-		dofobject=(DofObject*)(*object);
+		dofobject=dynamic_cast<DofObject*>(*object);
 		dofobject->DistributeDofs(&dofcount);
-	
+
 	}
 
@@ -995,5 +995,5 @@
 	for ( object=objects.begin() ; object < objects.end(); object++ ){
 
-		dofobject=(DofObject*)(*object);
+		dofobject=dynamic_cast<DofObject*>(*object);
 		dofobject->OffsetDofs(dofcount);
 	
@@ -1009,5 +1009,5 @@
 			
 		/*Ok, let this object show its true dofs, if is is a true dof: */
-		dofobject=(DofObject*)(*object);
+		dofobject=dynamic_cast<DofObject*>(*object);
 		dofobject->ShowTrueDofs(truedofs);
 	}
@@ -1018,5 +1018,5 @@
 	for ( object=objects.begin() ; object < objects.end(); object++ ){
 
-		dofobject=(DofObject*)(*object);
+		dofobject=dynamic_cast<DofObject*>(*object);
 		dofobject->UpdateCloneDofs(alltruedofs);
 
@@ -1151,5 +1151,5 @@
 
 		/*For this object, decide whether it is a clone: */
-		dofobject=(DofObject*)(*object);
+		dofobject=dynamic_cast<DofObject*>(*object);
 		dofobject->SetClone(minranks);
 	}
