Index: /issm/trunk-jpl/src/m/plot/applyoptions.js
===================================================================
--- /issm/trunk-jpl/src/m/plot/applyoptions.js	(revision 20578)
+++ /issm/trunk-jpl/src/m/plot/applyoptions.js	(revision 20579)
@@ -1,3 +1,3 @@
-function applyoptions(md,data,options,canvas,gl,node){
+function applyoptions(md,data,datatype,options,canvas,gl,node){
 	//APPLYOPTIONS - apply the options to current plot
 	//
@@ -11,22 +11,8 @@
 		if (options.getfieldvalue('colorbar')==1) {
 			//Handle movie data {{{
-				if (typeof data == 'string') {
-				//throw Error('plot error message: data of type string');
-				return;
-			}
-			var	dataresults = processdata(md,data,options);
-			var	data2 = dataresults[0]; 
-			var	datatype = dataresults[1];
 			if (datatype == 5) {
-				//Transpose data to obtain column addressable data matrix
-				data = data[0].map(function(col, i) { 
-					return data.map(function(row) { 
-						return row[i]
-					})
-				});
-				data = data[0].slice(0,-1);
+				data = data[0];
 			} //}}}
-			//Variable options initialization {{{
-			
+			//Variable options initialization {{{		
 			var caxis = options.getfieldvalue('caxis',[ArrayMin(data),ArrayMax(data)]);
 			var canvassize = options.getfieldvalue('canvassize',480);
Index: /issm/trunk-jpl/src/m/plot/plot_manager.js
===================================================================
--- /issm/trunk-jpl/src/m/plot/plot_manager.js	(revision 20578)
+++ /issm/trunk-jpl/src/m/plot/plot_manager.js	(revision 20579)
@@ -224,9 +224,11 @@
 	}
 	
-	if (typeof data !== 'string'){
-		//plot unit
-		plot_unit(md,data,options,canvas,gl,canvas.nodes["data"+String(canvas.datalength)]);
-	}
-
-	applyoptions(md,data,options,canvas,gl,canvas.nodes["data"+String(canvas.datalength)]);
+	var	dataresults = processdata(md,data,options);
+	var	data2 = dataresults[0]; 
+	var	datatype = dataresults[1];
+	
+	//plot unit
+	plot_unit(md,data2,datatype,options,canvas,gl,canvas.nodes["data"+String(canvas.datalength)]);
+
+	applyoptions(md,data2,datatype,options,canvas,gl,canvas.nodes["data"+String(canvas.datalength)]);
 }
Index: /issm/trunk-jpl/src/m/plot/plot_mesh.js
===================================================================
--- /issm/trunk-jpl/src/m/plot/plot_mesh.js	(revision 20578)
+++ /issm/trunk-jpl/src/m/plot/plot_mesh.js	(revision 20579)
@@ -94,4 +94,9 @@
 				vertices[vertices.length] = vertex[1];
 				vertices[vertices.length] = vertex[2];
+				
+				colors[colors.length] = color[0];
+				colors[colors.length] = color[1];
+				colors[colors.length] = color[2];
+				colors[colors.length] = color[3];
 				continue;
 			}
Index: /issm/trunk-jpl/src/m/plot/plot_overlay.js
===================================================================
--- /issm/trunk-jpl/src/m/plot/plot_overlay.js	(revision 20578)
+++ /issm/trunk-jpl/src/m/plot/plot_overlay.js	(revision 20579)
@@ -117,4 +117,7 @@
 			vertices[vertices.length] = vertex[1];
 			vertices[vertices.length] = vertex[2];
+			
+			texcoords[texcoords.length] = 0.0;
+			texcoords[texcoords.length] = 0.0;
 			continue;
 		}
Index: /issm/trunk-jpl/src/m/plot/plot_unit.js
===================================================================
--- /issm/trunk-jpl/src/m/plot/plot_unit.js	(revision 20578)
+++ /issm/trunk-jpl/src/m/plot/plot_unit.js	(revision 20579)
@@ -1,3 +1,3 @@
-function plot_unit(md,data,options,canvas,gl,node) {
+function plot_unit(md,data,datatype,options,canvas,gl,node) {
 	//PLOT_UNIT - unit plot, display data
 	//
@@ -26,8 +26,4 @@
 	var is2d = meshresults[4]; 
 	var isplanet = meshresults[5];
-	
-	var	dataresults = processdata(md,data,options);
-	var	data2 = dataresults[0]; 
-	var	datatype = dataresults[1];
 
 	//Compue scaling through matrices for 2d meshes and vertices for 3d meshes
@@ -112,9 +108,12 @@
 				for(var i = 0; i < x.length; i++){
 					//Check for NaN values and remove from indices array as necessary, but preserve vertex array spacing
-					if (isNaN(x[i]) || isNaN(y[i]) || isNaN(z[i])) {
+					if (isNaN(x[i]) || isNaN(y[i]) || isNaN(z[i]) || isNaN(data[i])) {
 						nanindices[i] = i;
 						vertices[vertices.length] = vertex[0];
 						vertices[vertices.length] = vertex[1];
 						vertices[vertices.length] = vertex[2];
+						
+						texcoords[texcoords.length] = 0.0;
+						texcoords[texcoords.length] = 0.0;
 						continue;
 					}
@@ -144,4 +143,5 @@
 
 			}
+		
 			//Initalize buffers
 			node["arrays"] = [vertices, texcoords, indices];
@@ -175,9 +175,12 @@
 				for(var i = 0; i < x.length; i++){
 					//Check for NaN values and remove from indices array as necessary, but preserve vertex array spacing
-					if (isNaN(x[i]) || isNaN(y[i]) || isNaN(z[i])) {
+					if (isNaN(x[i]) || isNaN(y[i]) || isNaN(z[i]) || isNaN(data[i])) {
 						nanindices[i] = i;
 						vertices[vertices.length] = vertex[0];
 						vertices[vertices.length] = vertex[1];
 						vertices[vertices.length] = vertex[2];
+						
+						texcoords[texcoords.length] = 0.0;
+						texcoords[texcoords.length] = 0.0;
 						continue;
 					}
@@ -191,5 +194,4 @@
 					vertices[vertices.length] = vertex[2];
 				}	
-				
 				//Transpose data to obtain column addressable data matrix
 				data = data[0].map(function(col, i) { 
@@ -271,4 +273,5 @@
 			throw Error(sprintf("%s%i%s\n",'case ',datatype,' not supported'));
 	}
+	
 	if (canvas.requestDrawing) draw(gl,options,canvas);
 }
