Index: /issm/trunk/src/c/objects/Elements/Penta.cpp
===================================================================
--- /issm/trunk/src/c/objects/Elements/Penta.cpp	(revision 10430)
+++ /issm/trunk/src/c/objects/Elements/Penta.cpp	(revision 10431)
@@ -1421,6 +1421,6 @@
 	int     i,num_inputs;
 	Penta  *penta       = NULL;
+	Input  *copy        = NULL;
 	Input **base_inputs = NULL;
-	Input  *copy        = NULL;
 
 	/*Are we on the base, not on the surface?:*/
@@ -1439,5 +1439,5 @@
 	}
 	else if (object_type==NodeEnum){
-		num_inputs=6;
+		num_inputs=3; //only the three upper nodes
 		base_inputs=(Input**)xmalloc(num_inputs*sizeof(Input*));
 		for(i=0;i<num_inputs;i++){
@@ -1459,5 +1459,4 @@
 	penta=this;
 	for(;;){
-
 		/* get upper Penta*/
 		penta=penta->GetUpperElement();
@@ -1470,9 +1469,9 @@
 				penta->inputs->AddInput((Input*)copy);
 			}
-			else if (object_type==MaterialsEnum){
+			else if(object_type==MaterialsEnum){
 				penta->matice->inputs->AddInput((Input*)copy);
 			}
-			else if (object_type==NodeEnum){
-				penta->nodes[i]->inputs->AddInput((Input*)copy);
+			else if(object_type==NodeEnum){
+				penta->nodes[i+3]->inputs->AddInput((Input*)copy); //change only the three upper nodes
 			}
 			else{
@@ -2067,4 +2066,6 @@
 	double  h[NUMVERTICES],s[NUMVERTICES],b[NUMVERTICES],ba[NUMVERTICES];
 
+	if(!IsOnBed()) return;
+
 	/*Recover info at the vertices: */
 	parameters->FindParam(&migration_style,GroundinglineMigrationEnum);
@@ -2126,9 +2127,14 @@
 
 	/*Update inputs*/
-   this->inputs->AddInput(new BoolInput(MaskElementonfloatingiceEnum,elementonshelf));
-
-	/*Update inputs*/    
 	this->inputs->AddInput(new PentaVertexInput(SurfaceEnum,&s[0]));
 	this->inputs->AddInput(new PentaVertexInput(BedEnum,&b[0]));
+   this->inputs->AddInput(new BoolInput(MaskElementonfloatingiceEnum,elementonshelf));
+
+	/*Extrude inputs*/
+	this->InputExtrude(SurfaceEnum,ElementEnum);
+	this->InputExtrude(BedEnum,ElementEnum);
+	this->InputExtrude(MaskElementonfloatingiceEnum,ElementEnum);
+	this->InputExtrude(MaskVertexonfloatingiceEnum,NodeEnum);
+	this->InputExtrude(MaskVertexongroundediceEnum,NodeEnum);
 }
 /*}}}*/
Index: /issm/trunk/src/c/objects/Inputs/BoolInput.cpp
===================================================================
--- /issm/trunk/src/c/objects/Inputs/BoolInput.cpp	(revision 10430)
+++ /issm/trunk/src/c/objects/Inputs/BoolInput.cpp	(revision 10431)
@@ -225,4 +225,11 @@
 }
 /*}}}*/
+/*FUNCTION BoolInput::Extrude{{{1*/
+void BoolInput::Extrude(void){
+
+	/*do nothing*/
+	return;
+}
+/*}}}*/
 /*FUNCTION BoolInput::GetVectorFromInputs{{{1*/
 void BoolInput::GetVectorFromInputs(Vec vector,int* doflist){
Index: /issm/trunk/src/c/objects/Inputs/BoolInput.h
===================================================================
--- /issm/trunk/src/c/objects/Inputs/BoolInput.h	(revision 10430)
+++ /issm/trunk/src/c/objects/Inputs/BoolInput.h	(revision 10431)
@@ -79,5 +79,5 @@
 		void AXPY(Input* xinput,double scalar);
 		void Constrain(double cm_min, double cm_max);
-		void Extrude(void){_error_("not supported yet");};
+		void Extrude(void);
 		void VerticallyIntegrate(Input* thickness_input){_error_("not supported yet");};
 		void GetVectorFromInputs(Vec vector,int* doflist);
Index: /issm/trunk/src/c/objects/Inputs/PentaVertexInput.cpp
===================================================================
--- /issm/trunk/src/c/objects/Inputs/PentaVertexInput.cpp	(revision 10430)
+++ /issm/trunk/src/c/objects/Inputs/PentaVertexInput.cpp	(revision 10431)
@@ -534,5 +534,4 @@
 	/*First 3 values copied on 3 last values*/
 	for(i=0;i<3;i++) this->values[3+i]=this->values[i];
-
 }
 /*}}}*/
