Index: ../trunk-jpl/src/c/solutions/issm.cpp
===================================================================
--- ../trunk-jpl/src/c/solutions/issm.cpp	(revision 13541)
+++ ../trunk-jpl/src/c/solutions/issm.cpp	(revision 13542)
@@ -60,7 +60,6 @@
 
 	/*Create femmodel, using input file: */
 	profiler->Tag(StartInit);
-	
 	femmodel=new FemModel(rootpath,binfilename,outbinfilename,solution_type,analyses,numanalyses);
 	
 	/*get type of solution we are going to run: */
@@ -82,22 +81,6 @@
 	/*Profiling: */
 	profiler->Tag(FinishInit);
 	
-	/*If running AD, then initialize a placeholder with which to work: */
-	#ifdef _HAVE_ADOLC_
-	GenericParam<Adolc_edf> *theAdolcEDF_p=new GenericParam<Adolc_edf>(AdolcParamEnum);
-	theAdolcEDF_p->GetParameterValue().myEDF_for_solverx_p=reg_ext_fct(EDF_for_solverx);
-	// to save some space:
-	// we know we won't use adolc inside of  the solver:
-	theAdolcEDF_p->GetParameterValue().myEDF_for_solverx_p->nestedAdolc=false;
-	// the solution vector is just allocated and doesn't have a meaningfull prior value
-	theAdolcEDF_p->GetParameterValue().myEDF_for_solverx_p->dp_y_priorRequired=false;
-	 // the solver wrapper makes sure the matrix and the right hand side don't change
-	theAdolcEDF_p->GetParameterValue().myEDF_for_solverx_p->dp_x_changes=false;
-	femmodel->parameters->AddObject(theAdolcEDF_p);
-	#else
-	if(autodiff) _error_("ISSM was not compiled with ADOLC support, cannot carry out autodiff analysis!");
-	#endif
-
 	_pprintLine_("call computational core:");
 	profiler->Tag(StartCore); solutioncore(femmodel); profiler->Tag(FinishCore); 
 	profiler->Tag(StartAdCore); ad_core(femmodel); profiler->Tag(FinishAdCore); 
Index: ../trunk-jpl/src/c/modules/ModelProcessorx/Autodiff/CreateParametersAutodiff.cpp
===================================================================
--- ../trunk-jpl/src/c/modules/ModelProcessorx/Autodiff/CreateParametersAutodiff.cpp	(revision 13541)
+++ ../trunk-jpl/src/c/modules/ModelProcessorx/Autodiff/CreateParametersAutodiff.cpp	(revision 13542)
@@ -6,9 +6,10 @@
 #include "../../../toolkits/toolkits.h"
 #include "../../../io/io.h"
 #include "../../../EnumDefinitions/EnumDefinitions.h"
-#include "../../../classes/objects/objects.h"
+#include "../../../classes/classes.h"
 #include "../../../shared/shared.h"
 #include "../../../include/include.h"
+#include "../../Solverx/Solverx.h"
 #include "../ModelProcessorx.h"
 
 void CreateParametersAutodiff(Parameters** pparameters,IoModel* iomodel,int solution_type,int analysis_type){
@@ -107,6 +108,18 @@
 		/*Don't forget to copy  iomodel->independent_objects to parameters: */
 		parameters->AddObject(new DataSetParam(AutodiffIndependentObjectsEnum,iomodel->independent_objects));
 		/*}}}*/
+	/*initialize a placeholder to store solver pointers: {{{*/
+	GenericParam<Adolc_edf> *theAdolcEDF_p=new GenericParam<Adolc_edf>(AdolcParamEnum);
+	theAdolcEDF_p->GetParameterValue().myEDF_for_solverx_p=reg_ext_fct(EDF_for_solverx);
+	// to save some space:
+	// we know we won't use adolc inside of  the solver:
+	theAdolcEDF_p->GetParameterValue().myEDF_for_solverx_p->nestedAdolc=false;
+	// the solution vector is just allocated and doesn't have a meaningfull prior value
+	theAdolcEDF_p->GetParameterValue().myEDF_for_solverx_p->dp_y_priorRequired=false;
+	 // the solver wrapper makes sure the matrix and the right hand side don't change
+	theAdolcEDF_p->GetParameterValue().myEDF_for_solverx_p->dp_x_changes=false;
+	parameters->AddObject(theAdolcEDF_p);
+	/*}}}*/
 
 		/*Assign output pointer: */
 		*pparameters=parameters;
