Index: /issm/trunk-jpl/src/c/classes/Elements/PentaRef.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/PentaRef.cpp	(revision 15639)
+++ /issm/trunk-jpl/src/c/classes/Elements/PentaRef.cpp	(revision 15640)
@@ -632,14 +632,21 @@
 	 **/
 
-	/*Get basis in actual coordinate system: */
-	IssmDouble basis[6];
-	GetNodalFunctionsP1(&basis[0],gauss);
-
-	for(int i=0;i<NUMNODESP1;i++){
-		B[2*NUMNODESP1*0+2*i+0] = basis[i];
-		B[2*NUMNODESP1*0+2*i+1] = 0.;
-		B[2*NUMNODESP1*1+2*i+0] = 0.;
-		B[2*NUMNODESP1*1+2*i+1] = basis[i];
-	}
+
+	/*Fetch number of nodes for this finite element*/
+	int numnodes = this->NumberofNodes();
+
+	/*Get nodal functions derivatives*/
+	IssmDouble* basis=xNew<IssmDouble>(numnodes);
+	GetNodalFunctions(basis,gauss);
+
+	for(int i=0;i<numnodes;i++){
+		B[2*numnodes*0+2*i+0] = basis[i];
+		B[2*numnodes*0+2*i+1] = 0.;
+		B[2*numnodes*1+2*i+0] = 0.;
+		B[2*numnodes*1+2*i+1] = basis[i];
+	}
+
+	/*Clean-up*/
+	xDelete<IssmDouble>(basis);
 } 
 /*}}}*/
