Index: /issm/trunk-jpl/src/c/analyses/HydrologyDCInefficientAnalysis.cpp
===================================================================
--- /issm/trunk-jpl/src/c/analyses/HydrologyDCInefficientAnalysis.cpp	(revision 16777)
+++ /issm/trunk-jpl/src/c/analyses/HydrologyDCInefficientAnalysis.cpp	(revision 16778)
@@ -196,4 +196,4 @@
 	xDelete<IssmDouble>(residual);
 	xDelete<int>(doflist);
-	if(meshtype!=Mesh2DhorizontalEnum) delete basalelement;
+	if(meshtype!=Mesh2DhorizontalEnum){basalelement->DeleteMaterials(); delete basalelement;};
 }/*}}}*/
Index: /issm/trunk-jpl/src/c/analyses/MasstransportAnalysis.cpp
===================================================================
--- /issm/trunk-jpl/src/c/analyses/MasstransportAnalysis.cpp	(revision 16777)
+++ /issm/trunk-jpl/src/c/analyses/MasstransportAnalysis.cpp	(revision 16778)
@@ -297,4 +297,4 @@
 	xDelete<IssmDouble>(phi);
 	xDelete<int>(doflist);
-	if(meshtype!=Mesh2DhorizontalEnum) delete basalelement;
-}/*}}}*/
+	if(meshtype!=Mesh2DhorizontalEnum){basalelement->DeleteMaterials(); delete basalelement;};
+}/*}}}*/
Index: /issm/trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp
===================================================================
--- /issm/trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp	(revision 16777)
+++ /issm/trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp	(revision 16778)
@@ -1325,5 +1325,5 @@
 	xDelete<IssmDouble>(xyz_list);
 	xDelete<int>(doflist);
-	if(meshtype!=Mesh2DhorizontalEnum) delete basalelement;
+	if(meshtype!=Mesh2DhorizontalEnum){basalelement->DeleteMaterials(); delete basalelement;};
 }/*}}}*/
 void StressbalanceAnalysis::InputUpdateFromSolutionSSA(IssmDouble* solution,Element* element){/*{{{*/
@@ -1424,5 +1424,5 @@
 	xDelete<IssmDouble>(xyz_list);
 	xDelete<int>(doflist);
-	if(meshtype!=Mesh2DhorizontalEnum) delete basalelement;
+	if(meshtype!=Mesh2DhorizontalEnum){basalelement->DeleteMaterials(); delete basalelement;};
 }/*}}}*/
 void StressbalanceAnalysis::InputUpdateFromSolutionSSAFS(IssmDouble* solution,Element* element){/*{{{*/
Index: /issm/trunk-jpl/src/c/classes/Elements/Element.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Element.h	(revision 16777)
+++ /issm/trunk-jpl/src/c/classes/Elements/Element.h	(revision 16778)
@@ -46,4 +46,5 @@
 		virtual void   CreatePVector(Vector<IssmDouble>* pf)=0;
 		virtual void   CreateJacobianMatrix(Matrix<IssmDouble>* Jff)=0;
+		virtual void   DeleteMaterials(void)=0;
 		virtual void   EnthalpyToThermal(IssmDouble* ptemperature,IssmDouble* pwaterfraction,IssmDouble enthalpy,IssmDouble pressure)=0;
 		virtual void   FindParam(int* pvalue,int paramenum)=0;
Index: /issm/trunk-jpl/src/c/classes/Elements/Penta.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Penta.h	(revision 16777)
+++ /issm/trunk-jpl/src/c/classes/Elements/Penta.h	(revision 16778)
@@ -74,4 +74,5 @@
 		void   ComputeStressTensor();
 		void   Configure(Elements* elements,Loads* loads,Nodes* nodes,Vertices* vertices,Materials* materials,Parameters* parameters);
+		void   DeleteMaterials(void){_error_("not implemented yet");};
 		void   FindParam(int* pvalue,int paramenum);
 		void   FindParam(IssmDouble* pvalue,int paramenum);
Index: /issm/trunk-jpl/src/c/classes/Elements/Seg.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Seg.h	(revision 16777)
+++ /issm/trunk-jpl/src/c/classes/Elements/Seg.h	(revision 16778)
@@ -75,4 +75,5 @@
 		void        ComputeStressTensor(){_error_("not implemented yet");};
 		void        Configure(Elements* elements,Loads* loads,Nodes* nodesin,Vertices* verticesin,Materials* materials,Parameters* parameters){_error_("not implemented yet");};
+		void        DeleteMaterials(void){_error_("not implemented yet");};
 		void        SetCurrentConfiguration(Elements* elements,Loads* loads,Nodes* nodes,Materials* materials,Parameters* parameters){_error_("not implemented yet");};
 		void        SetwiseNodeConnectivity(int* d_nz,int* o_nz,Node* node,bool* flags,int* flagsindices,int set1_enum,int set2_enum){_error_("not implemented yet");};
Index: /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 16777)
+++ /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 16778)
@@ -804,4 +804,9 @@
 
 	return;
+}
+/*}}}*/
+/*FUNCTION Tria::DeleteMaterials{{{*/
+void Tria::DeleteMaterials(void){
+	delete this->material;
 }
 /*}}}*/
Index: /issm/trunk-jpl/src/c/classes/Elements/Tria.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Tria.h	(revision 16777)
+++ /issm/trunk-jpl/src/c/classes/Elements/Tria.h	(revision 16778)
@@ -78,4 +78,5 @@
 		void        CreatePVector(Vector<IssmDouble>* pf);
 		void        CreateJacobianMatrix(Matrix<IssmDouble>* Jff);
+		void        DeleteMaterials(void);
 		void        Delta18oParameterization(void);
 		void        EnthalpyToThermal(IssmDouble* ptemperature,IssmDouble* pwaterfraction,IssmDouble enthalpy,IssmDouble pressure){_error_("not implemented yet");};
