Index: /issm/trunk/src/c/modules/OutputResultsx/ElementResultsToPatch.cpp
===================================================================
--- /issm/trunk/src/c/modules/OutputResultsx/ElementResultsToPatch.cpp	(revision 4194)
+++ /issm/trunk/src/c/modules/OutputResultsx/ElementResultsToPatch.cpp	(revision 4195)
@@ -94,5 +94,5 @@
 	patch->MPI_Gather();
 
-	/*create Result object and add to results dataset: */
+	/*create result object and add to results dataset: */
 	results->AddObject(new DoubleMatExternalResult(results->Size()+1,PatchEnum,patch->values,patch->numrows,patch->numcols,1,0));
 
Index: /issm/trunk/src/c/objects/ExternalResults/DoubleMatExternalResult.cpp
===================================================================
--- /issm/trunk/src/c/objects/ExternalResults/DoubleMatExternalResult.cpp	(revision 4194)
+++ /issm/trunk/src/c/objects/ExternalResults/DoubleMatExternalResult.cpp	(revision 4195)
@@ -35,7 +35,9 @@
 
 	/*Copy result in values*/
-	if (M*N==0) ISSMERROR("result of enum %s has a size %ix%i and con not be allocated",EnumAsString(in_enum_type),in_M,in_N);
-	values=(double*)xmalloc(M*N*sizeof(double));
-	memcpy(values,in_values,M*N*sizeof(double));
+	if(M*N){
+		values=(double*)xmalloc(M*N*sizeof(double));
+		memcpy(values,in_values,M*N*sizeof(double));
+	}
+	else values=NULL;
 
 	step=in_step;
@@ -45,5 +47,6 @@
 /*FUNCTION DoubleMatExternalResult::~DoubleMatExternalResult(){{{1*/
 DoubleMatExternalResult::~DoubleMatExternalResult(){
-	xfree((void**)&values);
+
+	xfree((void**)&this->values);
 	return;
 }
Index: /issm/trunk/src/c/objects/ExternalResults/DoubleVecExternalResult.cpp
===================================================================
--- /issm/trunk/src/c/objects/ExternalResults/DoubleVecExternalResult.cpp	(revision 4194)
+++ /issm/trunk/src/c/objects/ExternalResults/DoubleVecExternalResult.cpp	(revision 4195)
@@ -33,6 +33,9 @@
 	M=in_M;
 
-	values=(double*)xmalloc(M*sizeof(double));
-	memcpy(values,in_values,M*sizeof(double));
+	if(M){
+		values=(double*)xmalloc(M*sizeof(double));
+		memcpy(values,in_values,M*sizeof(double));
+	}
+	else values=NULL;
 
 	step=in_step;
Index: /issm/trunk/src/c/objects/ExternalResults/PetscVecExternalResult.cpp
===================================================================
--- /issm/trunk/src/c/objects/ExternalResults/PetscVecExternalResult.cpp	(revision 4194)
+++ /issm/trunk/src/c/objects/ExternalResults/PetscVecExternalResult.cpp	(revision 4195)
@@ -38,4 +38,6 @@
 		VecCopy(in_value,value);
 	}
+	else value=NULL;
+
 	step=in_step;
 	time=in_time;
