Index: /issm/trunk-jpl/src/c/classes/FemModel.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/FemModel.cpp	(revision 23048)
+++ /issm/trunk-jpl/src/c/classes/FemModel.cpp	(revision 23049)
@@ -1944,5 +1944,5 @@
 
 							}
-							if (!isarray){
+							if(!isarray){
 								Vector<IssmDouble> *vector_result = new Vector<IssmDouble>(size);
 
Index: /issm/trunk-jpl/src/c/modules/ModelProcessorx/Autodiff/CreateParametersAutodiff.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/ModelProcessorx/Autodiff/CreateParametersAutodiff.cpp	(revision 23048)
+++ /issm/trunk-jpl/src/c/modules/ModelProcessorx/Autodiff/CreateParametersAutodiff.cpp	(revision 23049)
@@ -38,4 +38,5 @@
 		options=OptionsFromAnalysis(&toolkit,parameters,DefaultAnalysisEnum);
 		ToolkitOptions::Init(toolkit,options);
+		xDelete<char>(toolkit);
 
 		switch(IssmSolverTypeFromToolkitOptions()){
Index: /issm/trunk-jpl/src/c/toolkits/issm/IssmDenseMat.h
===================================================================
--- /issm/trunk-jpl/src/c/toolkits/issm/IssmDenseMat.h	(revision 23048)
+++ /issm/trunk-jpl/src/c/toolkits/issm/IssmDenseMat.h	(revision 23049)
@@ -18,4 +18,5 @@
 
 #include "./IssmSeqVec.h"
+#include "./IssmToolkitUtils.h"
 #include "../../shared/shared.h"
 #include "../gsl/gslincludes.h"
@@ -272,19 +273,23 @@
 			pf=(IssmSeqVec<IssmDouble>*)pfin;
 
+			switch(IssmSolverTypeFromToolkitOptions()){
 			#ifdef _HAVE_MUMPS_
-			/*Assume we have a sequential vec, downcast*/
-			uf=((IssmSeqVec<IssmDouble>*)pfin)->Duplicate();
-			SeqDenseMumpsSolve(uf->vector,uf->M,uf->M, /*stiffness matrix:*/ this->matrix,this->M,this->N,this->M, /*right hand side load vector: */ pf->vector,pf->M,pf->M,parameters);
-			return uf;
+				case MumpsEnum: {
+					/*Assume we have a sequential vec, downcast*/
+					uf=((IssmSeqVec<IssmDouble>*)pfin)->Duplicate();
+					SeqDenseMumpsSolve(uf->vector,uf->M,uf->M, /*stiffness matrix:*/ this->matrix,this->M,this->N,this->M, /*right hand side load vector: */ pf->vector,pf->M,pf->M,parameters);
+					return uf;
+									 }
 			#endif
-
 			#ifdef _HAVE_GSL_
-			DenseGslSolve(/*output*/ &x,/*stiffness matrix:*/ this->matrix,this->M,this->N, /*right hand side load vector: */ pf->vector,pf->M,parameters);
-
-			uf=new IssmSeqVec<IssmDouble>(x,this->N); xDelete(x);
-			return uf;
+				case GslEnum: {
+					DenseGslSolve(/*output*/ &x,/*stiffness matrix:*/ this->matrix,this->M,this->N, /*right hand side load vector: */ pf->vector,pf->M,parameters);
+					uf=new IssmSeqVec<IssmDouble>(x,this->N); xDelete(x);
+					return uf;
+								  }
 			#endif
-
-			_error_("No solver available");
+				default: _error_("No solver available");
+			}
+
 			return NULL;
 
