Index: /issm/trunk/src/c/ModelProcessorx/DiagnosticStokes/CreateElementsNodesAndMaterialsDiagnosticStokes.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/DiagnosticStokes/CreateElementsNodesAndMaterialsDiagnosticStokes.cpp	(revision 419)
+++ /issm/trunk/src/c/ModelProcessorx/DiagnosticStokes/CreateElementsNodesAndMaterialsDiagnosticStokes.cpp	(revision 420)
@@ -423,6 +423,6 @@
 	ModelFetchData((void**)&model->gridonbed,NULL,NULL,model_handle,"gridonbed","Matrix","Mat");
 	ModelFetchData((void**)&model->gridonsurface,NULL,NULL,model_handle,"gridonsurface","Matrix","Mat");
-	ModelFetchData((void**)&model->gridonstokes,NULL,NULL,model_handle,"gridonsurface","Matrix","Mat");
-	ModelFetchData((void**)&model->borderstokes,NULL,NULL,model_handle,"gridonsurface","Matrix","Mat");
+	ModelFetchData((void**)&model->gridonstokes,NULL,NULL,model_handle,"gridonstokes","Matrix","Mat");
+	ModelFetchData((void**)&model->borderstokes,NULL,NULL,model_handle,"borderstokes","Matrix","Mat");
 
 
@@ -477,9 +477,4 @@
 		/*set single point constraints.: */
 		/*On a 3d mesh, in stokes formualtions, only stokes grids are free, the others are frozen: */
-		if (model->gridonstokes[i]){
-			for(k=1;k<=node_numdofs;k++){
-				node->FreezeDof(k);
-			}
-		}
 		if (model->borderstokes[i]){ 
 			//freeze everything except pressure
@@ -487,4 +482,9 @@
 			node->FreezeDof(2);
 			node->FreezeDof(3);
+		}
+		else if (model->gridonstokes[i]==0){
+			for(k=1;k<=node_numdofs;k++){
+				node->FreezeDof(k);
+			}
 		}
 
