Index: /issm/trunk-jpl/src/c/toolkits/double/MatlabMatrixToDoubleMatrix.cpp
===================================================================
--- /issm/trunk-jpl/src/c/toolkits/double/MatlabMatrixToDoubleMatrix.cpp	(revision 11760)
+++ /issm/trunk-jpl/src/c/toolkits/double/MatlabMatrixToDoubleMatrix.cpp	(revision 11761)
@@ -38,16 +38,19 @@
 		rows=mxGetM(mxmatrix);
 		cols=mxGetN(mxmatrix);
-		matrix=(double*)xcalloc(rows*cols,sizeof(double));
+		
+		if(rows*cols){
+			matrix=(double*)xcalloc(rows*cols,sizeof(double));
 
-		/*Now, get ir,jc and pr: */
-		ir=mxGetIr(mxmatrix);
-		jc=mxGetJc(mxmatrix);
+			/*Now, get ir,jc and pr: */
+			ir=mxGetIr(mxmatrix);
+			jc=mxGetJc(mxmatrix);
 
-		/*Now, start inserting data into double* matrix: */
-		count=0;
-		for(i=0;i<cols;i++){
-			for(j=0;j<(jc[i+1]-jc[i]);j++){
-				matrix[rows*ir[count]+i]=pmxdoublematrix[count];
-				count++;
+			/*Now, start inserting data into double* matrix: */
+			count=0;
+			for(i=0;i<cols;i++){
+				for(j=0;j<(jc[i+1]-jc[i]);j++){
+					matrix[rows*ir[count]+i]=pmxdoublematrix[count];
+					count++;
+				}
 			}
 		}
@@ -61,9 +64,11 @@
 		
 		/*Create serial matrix: */
-		matrix=(double*)xcalloc(rows*cols,sizeof(double));
+		if(rows*cols){
+			matrix=(double*)xcalloc(rows*cols,sizeof(double));
 
-		for(i=0;i<rows;i++){
-			for(j=0;j<cols;j++){
-				matrix[cols*i+j]=(double)pmxdoublematrix[rows*j+i];
+			for(i=0;i<rows;i++){
+				for(j=0;j<cols;j++){
+					matrix[cols*i+j]=(double)pmxdoublematrix[rows*j+i];
+				}
 			}
 		}
@@ -76,9 +81,11 @@
 
 		/*Create serial matrix: */
-		matrix=(double*)xcalloc(rows*cols,sizeof(double));
+		if(rows*cols){
+			matrix=(double*)xcalloc(rows*cols,sizeof(double));
 
-		for(i=0;i<rows;i++){
-			for(j=0;j<cols;j++){
-				matrix[cols*i+j]=(double)pmxsinglematrix[rows*j+i];
+			for(i=0;i<rows;i++){
+				for(j=0;j<cols;j++){
+					matrix[cols*i+j]=(double)pmxsinglematrix[rows*j+i];
+				}
 			}
 		}
Index: /issm/trunk-jpl/src/c/toolkits/double/MatlabVectorToDoubleVector.cpp
===================================================================
--- /issm/trunk-jpl/src/c/toolkits/double/MatlabVectorToDoubleVector.cpp	(revision 11760)
+++ /issm/trunk-jpl/src/c/toolkits/double/MatlabVectorToDoubleVector.cpp	(revision 11761)
@@ -52,17 +52,19 @@
 		nz=(int)((double)nnz/(double)rows);
 
-		vector=(double*)xcalloc(rows,sizeof(double));
+		if(rows){
+			vector=(double*)xcalloc(rows,sizeof(double));
 
-		/*Now, get ir,jc and pr: */
-		pr=mxGetPr(mxvector);
-		ir=mxGetIr(mxvector);
-		jc=mxGetJc(mxvector);
+			/*Now, get ir,jc and pr: */
+			pr=mxGetPr(mxvector);
+			ir=mxGetIr(mxvector);
+			jc=mxGetJc(mxvector);
 
-		/*Now, start inserting data into sparse vector: */
-		count=0;
-		for(i=0;i<cols;i++){
-			for(j=0;j<(jc[i+1]-jc[i]);j++){
-				vector[ir[count]]=pr[count];
-				count++;
+			/*Now, start inserting data into sparse vector: */
+			count=0;
+			for(i=0;i<cols;i++){
+				for(j=0;j<(jc[i+1]-jc[i]);j++){
+					vector[ir[count]]=pr[count];
+					count++;
+				}
 			}
 		}
