Index: ../trunk-jpl/src/c/modules/ModelProcessorx/Control/UpdateElementsAndMaterialsControl.cpp
===================================================================
--- ../trunk-jpl/src/c/modules/ModelProcessorx/Control/UpdateElementsAndMaterialsControl.cpp	(revision 18829)
+++ ../trunk-jpl/src/c/modules/ModelProcessorx/Control/UpdateElementsAndMaterialsControl.cpp	(revision 18830)
@@ -11,7 +11,7 @@
 void	UpdateElementsAndMaterialsControl(Elements* elements,Materials* materials, IoModel* iomodel){
 
 	/*Intermediary*/
-	int       control,cost_function;
+	int       control,cost_function,domaintype;
 	Element  *element = NULL;
 	Material *material = NULL;
 	int       num_control_type,num_cost_functions;
@@ -28,6 +28,7 @@
 
 	/*Fetch Observations */
 	iomodel->Constant(&num_cost_functions,InversionNumCostFunctionsEnum);
+	iomodel->Constant(&domaintype,DomainTypeEnum);
 	for(int i=0;i<num_cost_functions;i++){
 		cost_function= reCast<int,IssmDouble>(iomodel->Data(InversionCostFunctionsEnum)[i]);
 		if(     cost_function==ThicknessAbsMisfitEnum) iomodel->FetchDataToInput(elements,InversionThicknessObsEnum);
@@ -38,7 +39,7 @@
 			  || cost_function==SurfaceLogVxVyMisfitEnum
 			  || cost_function==SurfaceAverageVelMisfitEnum){
 			iomodel->FetchDataToInput(elements,InversionVxObsEnum);
-			iomodel->FetchDataToInput(elements,InversionVyObsEnum); 
+			if (domaintype!=Domain2DverticalEnum) iomodel->FetchDataToInput(elements,InversionVyObsEnum); 
 		}
 	}
 
@@ -53,6 +54,7 @@
 			case FrictionCoefficientEnum:
 			case BalancethicknessApparentMassbalanceEnum:
 			case BalancethicknessOmegaEnum:
+			case MaterialsRheologyBEnum: 
 				iomodel->FetchData(1,control); 
 				break;
 
