Index: /issm/trunk/src/c/parallel/steadystate.cpp
===================================================================
--- /issm/trunk/src/c/parallel/steadystate.cpp	(revision 2003)
+++ /issm/trunk/src/c/parallel/steadystate.cpp	(revision 2004)
@@ -178,4 +178,7 @@
 	xfree((void**)&u_g_initial);
 	xfree((void**)&p_g_initial);
+	delete model;
+	delete results;
+	delete inputs;
 
 	return 0; //unix success return;
Index: /issm/trunk/src/c/parallel/thermal_core.cpp
===================================================================
--- /issm/trunk/src/c/parallel/thermal_core.cpp	(revision 2003)
+++ /issm/trunk/src/c/parallel/thermal_core.cpp	(revision 2004)
@@ -31,4 +31,8 @@
 	double* t_g_serial=NULL;
 	double* m_g_serial=NULL;
+
+	/*intermediary*/
+	Vec Vect=NULL;
+	Vec Vecm=NULL;
 
 	/*flags: */
@@ -113,4 +117,8 @@
 		result=new Result(results->Size()+1,0,1,"m_g",m_g[0]);
 		results->AddObject(result);
+
+		/*free ressource*/
+		Vect=t_g[0];    Vecm=m_g[0];
+		VecFree(&Vect); VecFree(&Vecm);
 	}
 	else{
@@ -121,5 +129,11 @@
 			result=new Result(results->Size()+1,time[i],i+1,"m_g",m_g[i]);
 			results->AddObject(result);
+
+			/*free ressource*/
+			Vect=t_g[i];    Vecm=m_g[i];
+			VecFree(&Vect); VecFree(&Vecm);
 		}
 	}
+	/*free ressource*/
+	xfree((void**)&t_g);
 }
Index: /issm/trunk/src/c/parallel/thermal_core_nonlinear.cpp
===================================================================
--- /issm/trunk/src/c/parallel/thermal_core_nonlinear.cpp	(revision 2003)
+++ /issm/trunk/src/c/parallel/thermal_core_nonlinear.cpp	(revision 2004)
@@ -124,4 +124,9 @@
 	}
 
+	/*Free ressources: */
+	MatFree(&Kgg_nopenalty);
+	VecFree(&pg_nopenalty);
+	VecFree(&tf);
+
 	/*Assign output pointers: */
 	*ptg=tg;
