Index: /issm/trunk-jpl/src/c/classes/Elements/Element.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 21700)
+++ /issm/trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 21701)
@@ -652,4 +652,5 @@
 
 	/*Intermediaries*/
+	int materialstype;
 	IssmDouble dmudB;
 	IssmDouble epsilon3d[6];/* epsilon=[exx,eyy,exy,exy,exz,eyz];    */
@@ -669,5 +670,14 @@
 	}
 	/*Get viscosity*/
-	material->GetViscosity_B(&dmudB,eps_eff);
+	materialstype=this->material->ObjectEnum();
+	switch(materialstype){
+		case MaticeEnum:
+			material->GetViscosity_B(&dmudB,eps_eff);
+			break;
+		case MatestarEnum:
+			material->ViscosityBFS(&dmudB,dim,xyz_list,gauss,vx_input,vy_input,vz_input);
+			break;
+		default: _error_("not supported");
+	}
 
 	/*Assign output pointer*/
@@ -679,4 +689,5 @@
 
 	/*Intermediaries*/
+	int materialstype;
 	IssmDouble dmudB;
 	IssmDouble epsilon3d[5];/* epsilon=[exx,eyy,exy,exy,exz,eyz];    */
@@ -696,5 +707,14 @@
 	}
 	/*Get viscosity*/
-	material->GetViscosity_B(&dmudB,eps_eff);
+	materialstype=this->material->ObjectEnum();
+	switch(materialstype){
+		case MaticeEnum:
+			material->GetViscosity_B(&dmudB,eps_eff);
+			break;
+		case MatestarEnum:
+			material->ViscosityBHO(&dmudB,dim,xyz_list,gauss,vx_input,vy_input);
+			break;
+		default: _error_("not supported");
+	}
 
 	/*Assign output pointer*/
@@ -706,4 +726,5 @@
 
 	/*Intermediaries*/
+	int materialstype;
 	IssmDouble dmudB;
 	IssmDouble epsilon2d[3];/* epsilon=[exx,eyy,exy];    */
@@ -723,5 +744,14 @@
 
 	/*Get viscosity*/
-	material->GetViscosity_B(&dmudB,eps_eff);
+	materialstype=this->material->ObjectEnum();
+	switch(materialstype){
+		case MaticeEnum:
+			material->GetViscosity_B(&dmudB,eps_eff);
+			break;
+		case MatestarEnum:
+			material->ViscosityBSSA(&dmudB,dim,xyz_list,gauss,vx_input,vy_input);
+			break;
+		default: _error_("not supported");
+	}
 
 	/*Assign output pointer*/
Index: /issm/trunk-jpl/src/c/datastructures/DataSet.cpp
===================================================================
--- /issm/trunk-jpl/src/c/datastructures/DataSet.cpp	(revision 21700)
+++ /issm/trunk-jpl/src/c/datastructures/DataSet.cpp	(revision 21701)
@@ -167,4 +167,10 @@
 				this->AddObject(matice);
 			}
+			else if(obj_enum==MatestarEnum){
+				Matestar* matestar=NULL;
+				matestar=new Matestar();
+				matestar->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
+				this->AddObject(matestar);
+			}
 			else if(obj_enum==MatparEnum){
 				Matpar* matpar=NULL;
