Index: /issm/trunk/src/c/ContourToMeshx/ContourToMeshx.cpp
===================================================================
--- /issm/trunk/src/c/ContourToMeshx/ContourToMeshx.cpp	(revision 290)
+++ /issm/trunk/src/c/ContourToMeshx/ContourToMeshx.cpp	(revision 291)
@@ -31,5 +31,5 @@
 	for (i=0;i<numcontours;i++){
 		#ifdef _DEBUG_
-			printf("Handling contour %i/%i\n",i,numcontours);
+			printf("\nHandling contour %i/%i\n",i,numcontours);
 		#endif
 		contouri=*(contours+i);
Index: /issm/trunk/src/c/shared/Exp/IsInPoly.cpp
===================================================================
--- /issm/trunk/src/c/shared/Exp/IsInPoly.cpp	(revision 290)
+++ /issm/trunk/src/c/shared/Exp/IsInPoly.cpp	(revision 291)
@@ -6,9 +6,11 @@
 #include "../../toolkits/toolkits.h"
 #include "./exp.h"
+#include "../shared.h"
+
 
 
 int IsInPoly(Vec in,double* xc,double* yc,int numgrids,double* x,double* y,int nods, int edgevalue){
 
-	int i,j;
+	int i;
 	double x0,y0;
 	double value;
@@ -16,13 +18,15 @@
 	/*Go through all grids of the mesh:*/
 	for (i=MPI_Lowerrow(nods);i<MPI_Upperrow(nods);i++){
-		/*pick up grid: */
-		x0=x[i];
-		y0=y[i];
-		if (pnpoly(numgrids,xc,yc,x0,y0,edgevalue)){
-			value=1;
+
+		//Get current value of value[i] -> do not change it if != 0
+		VecGetValues(in,1,&i,&value);
+		if (value){
+			/*this grid already is inside one of the contours, continue*/
+			continue;
 		}
-		else{
-			value=0;
-		}
+
+		/*pick up grid (x[i],y[i]) and figure out if located inside contour (xc,yc)*/
+		x0=x[i]; y0=y[i];
+		value=pnpoly(numgrids,xc,yc,x0,y0,edgevalue);
 		VecSetValues(in,1,&i,&value,INSERT_VALUES);
 	}
