Index: /issm/trunk-jpl/src/m/classes/bamggeom.js
===================================================================
--- /issm/trunk-jpl/src/m/classes/bamggeom.js	(revision 22905)
+++ /issm/trunk-jpl/src/m/classes/bamggeom.js	(revision 22906)
@@ -21,5 +21,5 @@
                 for (var field in object) {
                     if (object.hasOwnProperty(field)) {
-                        this.field = object.field;
+                        this[field] = object[field];
                     }
                 }
Index: /issm/trunk-jpl/src/m/classes/bamgmesh.js
===================================================================
--- /issm/trunk-jpl/src/m/classes/bamgmesh.js	(revision 22905)
+++ /issm/trunk-jpl/src/m/classes/bamgmesh.js	(revision 22906)
@@ -21,5 +21,5 @@
                 for (var field in object) {
                     if (object.hasOwnProperty(field)) {
-                        this.field = object.field;
+                        this[field] = object[field];
                     }
                 }
Index: /issm/trunk-jpl/src/m/mesh/bamg.js
===================================================================
--- /issm/trunk-jpl/src/m/mesh/bamg.js	(revision 22905)
+++ /issm/trunk-jpl/src/m/mesh/bamg.js	(revision 22906)
@@ -458,5 +458,5 @@
     bamg_options.coeff=options.getfieldvalue('coeff',1.);
     bamg_options.cutoff=options.getfieldvalue('cutoff',Math.pow(10,-5));
-    bamg_options.err=options.getfieldvalue('err',[[0.01]]);
+    bamg_options.err=options.getfieldvalue('err',0.01);
     bamg_options.errg=options.getfieldvalue('errg',0.1);
     bamg_options.field=options.getfieldvalue('field',[]);
@@ -478,5 +478,5 @@
     bamg_options.power=options.getfieldvalue('power',1.);
     bamg_options.splitcorners=options.getfieldvalue('splitcorners',1);
-    bamg_options.verbose=options.getfieldvalue('verbose',6);
+    bamg_options.verbose=options.getfieldvalue('verbose',1);
     //}}}
 
Index: /issm/trunk-jpl/src/wrappers/BamgMesher/BamgMesher.js
===================================================================
--- /issm/trunk-jpl/src/wrappers/BamgMesher/BamgMesher.js	(revision 22905)
+++ /issm/trunk-jpl/src/wrappers/BamgMesher/BamgMesher.js	(revision 22906)
@@ -116,6 +116,6 @@
     var pfieldSize                          = intsToHeap(size2d(bamgopts.field));
     var pfield                              = doublesToHeap(Array.prototype.concat.apply([], bamgopts.field));
-    var perrSize                            = intsToHeap(size2d(bamgopts.err));
-    var perr                                = doublesToHeap(Array.prototype.concat.apply([], bamgopts.err));
+    var perrSize                            = intsToHeap(size2d([[bamgopts.err]]));
+    var perr                                = doublesToHeap(Array.prototype.concat.apply([], [[bamgopts.err]]));
 	
 	//output
Index: /issm/trunk-jpl/src/wrappers/javascript/io/FetchJavascriptData.cpp
===================================================================
--- /issm/trunk-jpl/src/wrappers/javascript/io/FetchJavascriptData.cpp	(revision 22905)
+++ /issm/trunk-jpl/src/wrappers/javascript/io/FetchJavascriptData.cpp	(revision 22906)
@@ -58,14 +58,24 @@
 void FetchData(double **pmatrix, int* pM, int* pN, int* matrixin, int M, int N){
 
-	double* matrix=NULL;
-	
-	if(pmatrix && matrixin){ 
-
-		matrix=xNew<IssmPDouble>(M*N); 
-		for(int i=0;i<M*N;i++)matrix[i]=(IssmPDouble)matrixin[i];
-		if (pM)*pM=M;
-		if (pN)*pN=N;
-		*pmatrix=matrix;
-	}
+	double*  outmatrix=NULL;
+	int      outmatrix_rows,outmatrix_cols;
+	
+	if(M == 0 || N == 0){
+		/*Nothing to pick up. Just initialize matrix pointer to NULL: */
+		outmatrix_rows=0;
+		outmatrix_cols=0;
+		outmatrix=NULL;
+	}
+    else if (pmatrix && matrixin){ 
+		outmatrix_rows=M;
+		outmatrix_cols=N;
+		outmatrix=xNew<IssmPDouble>(M*N); 
+		for(int i=0;i<M*N;i++)outmatrix[i]=(IssmPDouble)matrixin[i];
+	}
+
+	/*Assign output pointers:*/
+	*pmatrix=outmatrix;
+	if (pM)*pM=outmatrix_rows;
+	if (pN)*pN=outmatrix_cols;
 }
 /*}}}*/
@@ -73,14 +83,23 @@
 void FetchData(double **pmatrix, int* pM, int* pN, double* matrixin, int M, int N){
 
-	double* matrix=NULL;
-	
-	if(pmatrix && matrixin){ 
-
-		matrix=xNew<IssmPDouble>(M*N); 
-		for(int i=0;i<M*N;i++)matrix[i]=matrixin[i];
-		if (pM)*pM=M;
-		if (pN)*pN=N;
-		*pmatrix=matrix;
-	}
+	double*  outmatrix=NULL;
+	int      outmatrix_rows,outmatrix_cols;
+
+	if(M == 0 || N == 0){
+		/*Nothing to pick up. Just initialize matrix pointer to NULL: */
+		outmatrix_rows=0;
+		outmatrix_cols=0;
+		outmatrix=NULL;
+	}
+    else if (pmatrix && matrixin){ 
+		outmatrix_rows=M;
+		outmatrix_cols=N;
+		outmatrix=xNew<IssmPDouble>(M*N); xMemCpy<IssmPDouble>(outmatrix,matrixin,M*N); 
+	}
+
+	/*Assign output pointers:*/
+	*pmatrix=outmatrix;
+	if (pM)*pM=outmatrix_rows;
+	if (pN)*pN=outmatrix_cols;
 }
 /*}}}*/
@@ -88,13 +107,23 @@
 void FetchData(int **pmatrix, int* pM, int* pN, int* matrixin, int M, int N){
 
-	int* matrix=NULL;
-	
-	if(pmatrix && matrixin){ 
-
-		matrix=xNew<int>(M*N);xMemCpy<int>(matrix,matrixin,M*N); 
-		if (pM)*pM=M;
-		if (pN)*pN=N;
-		*pmatrix=matrix;
-	}
+	int*     outmatrix=NULL;
+	int      outmatrix_rows,outmatrix_cols;
+
+	if(M == 0 || N == 0){
+		/*Nothing to pick up. Just initialize matrix pointer to NULL: */
+		outmatrix_rows=0;
+		outmatrix_cols=0;
+		outmatrix=NULL;
+	}
+    else if (pmatrix && matrixin){ 
+		outmatrix_rows=M;
+		outmatrix_cols=N;
+		outmatrix=xNew<int>(M*N); xMemCpy<int>(outmatrix,matrixin,M*N); 
+	}
+
+	/*Assign output pointers:*/
+	*pmatrix=outmatrix;
+	if (pM)*pM=outmatrix_rows;
+	if (pN)*pN=outmatrix_cols;
 }
 /*}}}*/
