Index: /issm/trunk/src/c/DataSet/DataSet.cpp
===================================================================
--- /issm/trunk/src/c/DataSet/DataSet.cpp	(revision 2005)
+++ /issm/trunk/src/c/DataSet/DataSet.cpp	(revision 2006)
@@ -1228,6 +1228,6 @@
 	}
 	if(id_offsets){
-		copy->sorted_ids=(int*)xmalloc(objects.size()*sizeof(int));
-		memcpy(copy->sorted_ids,id_offsets,objects.size()*sizeof(int));
+		copy->id_offsets=(int*)xmalloc(objects.size()*sizeof(int));
+		memcpy(copy->id_offsets,id_offsets,objects.size()*sizeof(int));
 	}
 
Index: /issm/trunk/src/c/parallel/diagnostic_core_nonlinear.cpp
===================================================================
--- /issm/trunk/src/c/parallel/diagnostic_core_nonlinear.cpp	(revision 2005)
+++ /issm/trunk/src/c/parallel/diagnostic_core_nonlinear.cpp	(revision 2006)
@@ -150,5 +150,5 @@
 
 	}
-
+	
 	/*Delete loads only if no ouput was requested: */
 	if(!input_loads)delete loads;
@@ -158,5 +158,5 @@
 	VecFree(&old_uf);
 	VecFree(&old_ug);
-	delete solver_string;
+	xfree((void**)&solver_string);
 	
 	/*Assign output pointers: */
