Index: /issm/trunk/src/c/Makefile.am
===================================================================
--- /issm/trunk/src/c/Makefile.am	(revision 4577)
+++ /issm/trunk/src/c/Makefile.am	(revision 4578)
@@ -373,5 +373,4 @@
 					./modules/ModelProcessorx/SurfaceSlope/CreateLoadsSurfaceSlope.cpp\
 					./modules/ModelProcessorx/Control/CreateParametersControl.cpp\
-					./modules/ModelProcessorx/Control/UpdateElementsControl.cpp\
 					./modules/ModelProcessorx/Thermal/UpdateElementsThermal.cpp\
 					./modules/ModelProcessorx/Thermal/CreateNodesThermal.cpp\
@@ -925,5 +924,4 @@
 					./modules/ModelProcessorx/SurfaceSlope/CreateLoadsSurfaceSlope.cpp\
 					./modules/ModelProcessorx/Control/CreateParametersControl.cpp\
-					./modules/ModelProcessorx/Control/UpdateElementsControl.cpp\
 					./modules/ModelProcessorx/Thermal/UpdateElementsThermal.cpp\
 					./modules/ModelProcessorx/Thermal/CreateNodesThermal.cpp\
Index: sm/trunk/src/c/modules/ModelProcessorx/Control/UpdateElementsControl.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/Control/UpdateElementsControl.cpp	(revision 4577)
+++ 	(revision )
@@ -1,50 +1,0 @@
-/*
- * UpdateElementsControl:
- */
-
-#include "../../../Container/Container.h"
-#include "../../../toolkits/toolkits.h"
-#include "../../../io/io.h"
-#include "../../../EnumDefinitions/EnumDefinitions.h"
-#include "../../../objects/objects.h"
-#include "../../../shared/shared.h"
-#include "../../MeshPartitionx/MeshPartitionx.h"
-#include "../../../include/include.h"
-#include "../ModelProcessorx.h"
-
-void	UpdateElementsControl(Elements* elements, IoModel* iomodel,ConstDataHandle iomodel_handle,int analysis_counter,int analysis_type){
-
-	/*Intermediary*/
-	int i;
-	int counter;
-	Element* element=NULL;
-	double*  control_parameter=NULL;
-
-	/*Get out if no Control Requested*/
-	if(!iomodel->control_analysis) return;
-
-	/*Fetch data needed: */
-	IoModelFetchData(&iomodel->elements,NULL,NULL,iomodel_handle,"elements");
-	IoModelFetchData(&iomodel->vx_obs,NULL,NULL,iomodel_handle,"vx_obs");
-	IoModelFetchData(&iomodel->vy_obs,NULL,NULL,iomodel_handle,"vy_obs");
-	IoModelFetchData(&iomodel->weights,NULL,NULL,iomodel_handle,"weights");
-	IoModelFetchData(&iomodel->control_parameter,NULL,NULL,iomodel_handle,iomodel->control_type); //copy the control parameter in iomodel
-
-	/*Update elements: */
-	counter=0;
-	for (i=0;i<iomodel->numberofelements;i++){
-		if(iomodel->my_elements[i]){
-			element=(Element*)elements->GetObjectByOffset(counter);
-			element->Update(i,iomodel,analysis_counter,analysis_type); //we need i to index into elements.
-			counter++;
-		}
-	}
-	cleanup_and_return:
-
-	/*Free data: */
-	xfree((void**)&iomodel->elements);
-	xfree((void**)&iomodel->vx_obs);
-	xfree((void**)&iomodel->vy_obs);
-	xfree((void**)&iomodel->weights);
-	xfree((void**)&iomodel->control_parameter);
-}
Index: /issm/trunk/src/c/modules/ModelProcessorx/CreateDataSets.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/CreateDataSets.cpp	(revision 4577)
+++ /issm/trunk/src/c/modules/ModelProcessorx/CreateDataSets.cpp	(revision 4578)
@@ -122,7 +122,4 @@
 	}
 
-	/*Update Elements in case of control methods*/
-	UpdateElementsControl(elements,iomodel,iomodel_handle,analysis_counter,analysis_type);
-	
 	/*Generate objects that are not dependent on any analysis_type: */
 	CreateParameters(pparameters,iomodel,iomodel_handle,solution_type,analysis_type,analysis_counter);
Index: /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/UpdateElementsDiagnosticHoriz.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/UpdateElementsDiagnosticHoriz.cpp	(revision 4577)
+++ /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/UpdateElementsDiagnosticHoriz.cpp	(revision 4578)
@@ -16,7 +16,7 @@
 
 	/*Intermediary*/
-	int i;
-	int counter;
-	Element* element=NULL;
+	int      i;
+	int      counter;
+	Element *element = NULL;
 
 	/*Now, is the flag macayaealpattyn on? otherwise, do nothing: */
@@ -42,4 +42,10 @@
 		IoModelFetchData(&iomodel->elementonsurface,NULL,NULL,iomodel_handle,"elementonsurface");
 		IoModelFetchData(&iomodel->vz,NULL,NULL,iomodel_handle,"vz");
+	}
+	if(iomodel->control_analysis){
+		IoModelFetchData(&iomodel->vx_obs,NULL,NULL,iomodel_handle,"vx_obs");
+		IoModelFetchData(&iomodel->vy_obs,NULL,NULL,iomodel_handle,"vy_obs");
+		IoModelFetchData(&iomodel->weights,NULL,NULL,iomodel_handle,"weights");
+		IoModelFetchData(&iomodel->control_parameter,NULL,NULL,iomodel_handle,iomodel->control_type); //copy the control parameter in iomodel
 	}
 
@@ -73,3 +79,7 @@
 	xfree((void**)&iomodel->vy);
 	xfree((void**)&iomodel->vz);
+	xfree((void**)&iomodel->vx_obs);
+	xfree((void**)&iomodel->vy_obs);
+	xfree((void**)&iomodel->weights);
+	xfree((void**)&iomodel->control_parameter);
 }
Index: /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticStokes/UpdateElementsDiagnosticStokes.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticStokes/UpdateElementsDiagnosticStokes.cpp	(revision 4577)
+++ /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticStokes/UpdateElementsDiagnosticStokes.cpp	(revision 4578)
@@ -44,4 +44,10 @@
 	IoModelFetchData(&iomodel->vy,NULL,NULL,iomodel_handle,"vy");
 	IoModelFetchData(&iomodel->vz,NULL,NULL,iomodel_handle,"vz");
+	if(iomodel->control_analysis){
+		IoModelFetchData(&iomodel->vx_obs,NULL,NULL,iomodel_handle,"vx_obs");
+		IoModelFetchData(&iomodel->vy_obs,NULL,NULL,iomodel_handle,"vy_obs");
+		IoModelFetchData(&iomodel->weights,NULL,NULL,iomodel_handle,"weights");
+		IoModelFetchData(&iomodel->control_parameter,NULL,NULL,iomodel_handle,iomodel->control_type); //copy the control parameter in iomodel
+	}
 
 	/*Update elements: */
@@ -77,3 +83,7 @@
 	xfree((void**)&iomodel->vy);
 	xfree((void**)&iomodel->vz);
+	xfree((void**)&iomodel->vx_obs);
+	xfree((void**)&iomodel->vy_obs);
+	xfree((void**)&iomodel->weights);
+	xfree((void**)&iomodel->control_parameter);
 }
Index: /issm/trunk/src/c/modules/ModelProcessorx/ModelProcessorx.h
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/ModelProcessorx.h	(revision 4577)
+++ /issm/trunk/src/c/modules/ModelProcessorx/ModelProcessorx.h	(revision 4578)
@@ -21,5 +21,4 @@
 void  CreateParametersControl(Parameters** pparameters,IoModel* iomodel,ConstDataHandle iomodel_handle,int analysis_type);
 void  CreateParametersQmu(Parameters** pparameters,IoModel* iomodel,ConstDataHandle iomodel_handle,int analysis_type);
-void	UpdateElementsControl(Elements* elements,IoModel* iomodel_handle,ConstDataHandle iomodel_handle,int analysis_counter,int analysis_type);
 
 /*Creation of fem datasets: specialised drivers: */
Index: /issm/trunk/src/c/objects/Elements/Penta.cpp
===================================================================
--- /issm/trunk/src/c/objects/Elements/Penta.cpp	(revision 4577)
+++ /issm/trunk/src/c/objects/Elements/Penta.cpp	(revision 4578)
@@ -660,5 +660,5 @@
 }
 /*}}}*/
-		/*FUNCTION Penta::SetCurrentConfiguration {{{1*/
+/*FUNCTION Penta::SetCurrentConfiguration {{{1*/
 void  Penta::SetCurrentConfiguration(Elements* elementsin, Loads* loadsin, DataSet* nodesin, Materials* materialsin, Parameters* parametersin){
 
