Index: /issm/trunk/src/c/objects/Elements/Penta.cpp
===================================================================
--- /issm/trunk/src/c/objects/Elements/Penta.cpp	(revision 5873)
+++ /issm/trunk/src/c/objects/Elements/Penta.cpp	(revision 5874)
@@ -2198,13 +2198,6 @@
 			delete Ke;
 			break;
-
 		case PattynStokesApproximationEnum:
-			Ke=CreateKMatrixDiagnosticPattyn();
-			if(Ke) Ke->AddToGlobal(Kgg,NULL,NULL);
-			delete Ke;
-			Ke=CreateKMatrixDiagnosticStokes();
-			if(Ke) Ke->AddToGlobal(Kgg,NULL,NULL);
-			delete Ke;
-			Ke=CreateKMatrixCouplingPattynStokes();
+			Ke=CreateKMatrixDiagnosticPattynStokes();
 			if(Ke) Ke->AddToGlobal(Kgg,NULL,NULL);
 			delete Ke;
@@ -2538,4 +2531,20 @@
 }
 /*}}}*/
+/*FUNCTION Penta::CreateKMatrixDiagnosticPattynStokes{{{1*/
+ElementMatrix* Penta::CreateKMatrixDiagnosticPattynStokes(void){
+
+	/*compute all stiffness matrices for this element*/
+	ElementMatrix* Ke1=CreateKMatrixDiagnosticPattyn();
+	ElementMatrix* Ke2=CreateKMatrixDiagnosticStokes();
+	ElementMatrix* Ke3=CreateKMatrixCouplingPattynStokes();
+	ElementMatrix* Ke =new ElementMatrix(Ke1,Ke2,Ke3);
+
+	/*clean-up and return*/
+	delete Ke1;
+	delete Ke2;
+	delete Ke3;
+	return Ke;
+}
+/*}}}*/
 /*FUNCTION Penta::CreateKMatrixDiagnosticStokes{{{1*/
 ElementMatrix* Penta::CreateKMatrixDiagnosticStokes(void){
Index: /issm/trunk/src/c/objects/Elements/Penta.h
===================================================================
--- /issm/trunk/src/c/objects/Elements/Penta.h	(revision 5873)
+++ /issm/trunk/src/c/objects/Elements/Penta.h	(revision 5874)
@@ -137,4 +137,5 @@
 		ElementMatrix* CreateKMatrixDiagnosticPattynViscous(void);
 		ElementMatrix* CreateKMatrixDiagnosticPattynFriction(void);
+		ElementMatrix* CreateKMatrixDiagnosticPattynStokes(void);
 		ElementMatrix* CreateKMatrixDiagnosticStokes(void);
 		ElementMatrix* CreateKMatrixDiagnosticStokesViscous(void);
