Index: /issm/trunk-jpl/src/c/objects/Options/Option.cpp
===================================================================
--- /issm/trunk-jpl/src/c/objects/Options/Option.cpp	(revision 12453)
+++ /issm/trunk-jpl/src/c/objects/Options/Option.cpp	(revision 12454)
@@ -34,6 +34,6 @@
 Option::~Option(){
 
-	if(size) xfree((void**)&size);
-	if(name) xfree((void**)&name);
+	if(size) xDelete<int>(size);
+	if(name) xDelete<char>(name);
 
 }
Index: /issm/trunk-jpl/src/c/objects/Options/OptionCell.cpp
===================================================================
--- /issm/trunk-jpl/src/c/objects/Options/OptionCell.cpp	(revision 12453)
+++ /issm/trunk-jpl/src/c/objects/Options/OptionCell.cpp	(revision 12454)
@@ -82,5 +82,5 @@
 
 	if (values->Size()) {
-		dims=(int *) xmalloc(ndims*sizeof(int));
+		dims=xNew<int>(ndims);
 		for (i=0; i<values->Size(); i++) {
 			ColumnWiseDimsFromIndex(dims,i,size,ndims);
@@ -90,5 +90,5 @@
 			_printf_(flag,"%s        values: --------  end  %s --------\n" ,indent,cstr);
 		}
-		xfree((void**)&dims);
+		xDelete<int>(dims);
 	}
 	else _printf_(flag,"%s        values: [empty]\n" ,indent);
Index: /issm/trunk-jpl/src/c/objects/Options/OptionChar.cpp
===================================================================
--- /issm/trunk-jpl/src/c/objects/Options/OptionChar.cpp	(revision 12453)
+++ /issm/trunk-jpl/src/c/objects/Options/OptionChar.cpp	(revision 12454)
@@ -31,5 +31,5 @@
 OptionChar::~OptionChar(){
 
-	if (values) xfree((void**)&values);
+	if (values) xDelete<char>(values);
 
 }
@@ -93,5 +93,5 @@
 			for (i=2; i<ndims; i++) nstr*=size[i];
 
-			dims=(int *) xmalloc(ndims*sizeof(int));
+			dims=xNew<int>(ndims);
 			for (i=0; i<nstr; i++) {
 				RowWiseDimsFromIndex(dims,ipt,size,ndims);
@@ -100,5 +100,5 @@
 				ipt+=size[1];
 			}
-			xfree((void**)&dims);
+			xDelete<int>(dims);
 		}
 	}
@@ -138,5 +138,5 @@
 	stringsize=strlen(this->values)+1;
 
-	outstring=(char*)xmalloc(stringsize*sizeof(char));
+	outstring=xNew<char>(stringsize);
 	memcpy(outstring,this->values,stringsize*sizeof(char));
 
@@ -162,7 +162,7 @@
 
 	/*Break concatenated string into individual strings*/
-	*ppvalue=(char **) xmalloc(nstr*sizeof(char *));
+	*ppvalue=xNew<char*>(nstr);
 	for (i=0; i<nstr; i++) {
-		outstring=(char*)xmalloc(stringsize*sizeof(char));
+		outstring=xNew<char>(stringsize);
 		memcpy(outstring,&(this->values[ipt]),(stringsize-1)*sizeof(char));
 		outstring[stringsize-1]='\0';
Index: /issm/trunk-jpl/src/c/objects/Options/OptionDouble.cpp
===================================================================
--- /issm/trunk-jpl/src/c/objects/Options/OptionDouble.cpp	(revision 12453)
+++ /issm/trunk-jpl/src/c/objects/Options/OptionDouble.cpp	(revision 12454)
@@ -31,5 +31,5 @@
 OptionDouble::~OptionDouble(){
 
-	if (values) xfree((void**)&values);
+	if (values) xDelete<double>(values);
 
 }
@@ -82,5 +82,5 @@
 
 	if (values) {
-		dims=(int *) xmalloc(ndims*sizeof(int));
+		dims=xNew<int>(ndims);
 		if(numel==1) _printf_(flag,"%s        values: %g\n" ,indent,values[0]);
 		else{
@@ -91,5 +91,5 @@
 			}
 		}
-		xfree((void**)&dims);
+		xDelete<int>(dims);
 	}
 	else _printf_(flag,"%s        values: [empty]\n" ,indent);
@@ -153,5 +153,5 @@
 
 	/*Copy vector*/
-	double* outvalue=(double*)xmalloc(this->NumEl()*sizeof(double));
+	double* outvalue=xNew<double>(this->NumEl());
 	for(int i=0;i<this->NumEl();i++) outvalue[i]=this->values[i];
 
Index: /issm/trunk-jpl/src/c/objects/Options/OptionLogical.cpp
===================================================================
--- /issm/trunk-jpl/src/c/objects/Options/OptionLogical.cpp	(revision 12453)
+++ /issm/trunk-jpl/src/c/objects/Options/OptionLogical.cpp	(revision 12454)
@@ -31,5 +31,5 @@
 OptionLogical::~OptionLogical(){
 
-	if (values) xfree((void**)&values);
+	if (values) xDelete<bool>(values);
 
 }
@@ -84,5 +84,5 @@
 		if(numel==1) _printf_(flag,"%s        values: %s\n" ,indent,(values[0] ? "true" : "false"));
 		else{
-			dims=(int *) xmalloc(ndims*sizeof(int));
+			dims=xNew<int>(ndims);
 			for (i=0; i<numel; i++) {
 				RowWiseDimsFromIndex(dims,i,size,ndims);
@@ -90,5 +90,5 @@
 				_printf_(flag,"%s        values%s: %s\n" ,indent,cstr,(values[i] ? "true" : "false"));
 			}
-			xfree((void**)&dims);
+			xDelete<int>(dims);
 		}
 	}
Index: /issm/trunk-jpl/src/c/objects/Options/OptionStruct.cpp
===================================================================
--- /issm/trunk-jpl/src/c/objects/Options/OptionStruct.cpp	(revision 12453)
+++ /issm/trunk-jpl/src/c/objects/Options/OptionStruct.cpp	(revision 12454)
@@ -38,5 +38,5 @@
 			values[i] =NULL;
 		}
-		xfree((void**)&values);
+		xDelete<Options*>(values);
 	}
 
@@ -87,5 +87,5 @@
 
 	if (values) {
-		dims=(int *)xmalloc(ndims*sizeof(int));
+		dims=xNew<int>(ndims);
 		for (i=0; i<numel; i++) {
 			ColumnWiseDimsFromIndex(dims,i,size,ndims);
@@ -98,5 +98,5 @@
 			else _printf_(flag,"%s        values: %s [empty]\n" ,indent,cstr);
 		}
-		xfree((void**)&dims);
+		xDelete<int>(dims);
 	}
 	else _printf_(flag,"%s        values: [empty]\n" ,indent);
