Index: /issm/trunk-jpl/src/wrappers/IssmConfig/IssmConfig.cpp
===================================================================
--- /issm/trunk-jpl/src/wrappers/IssmConfig/IssmConfig.cpp	(revision 19895)
+++ /issm/trunk-jpl/src/wrappers/IssmConfig/IssmConfig.cpp	(revision 19896)
@@ -21,7 +21,6 @@
 	char       *name     = NULL;
 	bool        isstring = false;
-	IssmDouble  value   = 0.;
+	IssmDouble  value    = 0.;
 	char       *svalue   = NULL;
-
 
 	/*Boot module: */
@@ -163,5 +162,4 @@
 	 WriteData(VALUE,value);
 
-
 	/*Clean up*/
 	xDelete<char>(name);
@@ -170,4 +168,3 @@
 	/*end module: */
 	MODULEEND();
-
 }
Index: /issm/trunk-jpl/src/wrappers/IssmConfig/IssmConfig.h
===================================================================
--- /issm/trunk-jpl/src/wrappers/IssmConfig/IssmConfig.h	(revision 19895)
+++ /issm/trunk-jpl/src/wrappers/IssmConfig/IssmConfig.h	(revision 19896)
@@ -5,5 +5,4 @@
 #ifndef _ISSMCONFIG_H
 #define _ISSMCONFIG_H
-
 
 #ifdef HAVE_CONFIG_H
Index: /issm/trunk-jpl/src/wrappers/python/io/FetchPythonData.cpp
===================================================================
--- /issm/trunk-jpl/src/wrappers/python/io/FetchPythonData.cpp	(revision 19895)
+++ /issm/trunk-jpl/src/wrappers/python/io/FetchPythonData.cpp	(revision 19896)
@@ -24,8 +24,13 @@
 	if      (PyFloat_Check(py_float))
 		dscalar=PyFloat_AsDouble(py_float);
-	else if (PyLong_Check(py_float))
+	else if (PyLong_Check(py_float)){
+		#if _PYTHON_MAJOR_ == 3
 		dscalar=(double)PyLong_AsLong(py_float);
-	else if (PyLong_Check(py_float))
+		#else
 		dscalar=PyLong_AsDouble(py_float);
+		#endif
+	}
+	else if (PyInt_Check(py_float))
+	 dscalar=(double)PyInt_AsLong(py_float);
 	else if (PyBool_Check(py_float))
 		dscalar=(double)PyLong_AsLong(py_float);
@@ -49,6 +54,6 @@
 	if      (PyLong_Check(py_long))
 		iscalar=(int)PyLong_AsLong(py_long);
-	else if (PyLong_Check(py_long))
-		iscalar=(int)PyLong_AsLong(py_long);
+	else if (PyInt_Check(py_long))
+		iscalar=(int)PyInt_AsLong(py_long);
 	else if (PyFloat_Check(py_long))
 		iscalar=(int)PyFloat_AsDouble(py_long);
@@ -78,4 +83,6 @@
 	else if (PyLong_Check(py_boolean))
 		bscalar=(bool)PyLong_AsLong(py_boolean);
+	else if (PyInt_Check(py_boolean))
+		bscalar=(bool)PyInt_AsLong(py_boolean);
 	else if (PyTuple_Check(py_boolean) && (int)PyTuple_Size(py_boolean)==1)
 		FetchData(&bscalar,PyTuple_GetItem(py_boolean,(Py_ssize_t)0));
@@ -724,5 +731,9 @@
 	/*Fetch all options*/
 	for (int i=istart; i<nrhs; i=i+2){
+		#if _PYTHON_MAJOR_ >= 3
 		if (!PyUnicode_Check(PyTuple_GetItem(py_tuple,(Py_ssize_t)i))) _error_("Argument " << i+1 << " must be name of option");
+		#else
+		if (!PyString_Check(PyTuple_GetItem(py_tuple,(Py_ssize_t)i))) _error_("Argument " << i+1 << " must be name of option");
+		#endif
 
 		FetchData(&name,PyTuple_GetItem(py_tuple,(Py_ssize_t)i));
@@ -750,8 +761,15 @@
 	PyObject        *py_item     = NULL;
 
+	#if _PYTHON_MAJOR_ >= 3
 	if (PyUnicode_Check(py_list)){
 		FetchData(&contourname,py_list);
 		contours=ExpRead<double>(contourname);
 	}
+	#else
+	if (PyString_Check(py_list)){
+		FetchData(&contourname,py_list);
+		contours=ExpRead<double>(contourname);
+	}
+	#endif
 	else if(PyList_Check(py_list)){
 
Index: /issm/trunk-jpl/src/wrappers/python/io/WritePythonData.cpp
===================================================================
--- /issm/trunk-jpl/src/wrappers/python/io/WritePythonData.cpp	(revision 19895)
+++ /issm/trunk-jpl/src/wrappers/python/io/WritePythonData.cpp	(revision 19896)
@@ -20,5 +20,9 @@
 void WriteData(PyObject* py_tuple, int index, int integer){
 
+	#if _PYTHON_MAJOR_ >= 3
 	PyTuple_SetItem(py_tuple, index, PyLong_FromSsize_t((Py_ssize_t)integer));
+	#else
+	PyTuple_SetItem(py_tuple, index, PyInt_FromSsize_t((Py_ssize_t)integer));
+	#endif
 
 }/*}}}*/
@@ -212,11 +216,21 @@
 		dict=PyDict_New();
 
+		#if _PYTHON_MAJOR_ >= 3
 		PyDict_SetItemString(dict,"numsegs"          ,PyLong_FromSsize_t((Py_ssize_t)riftstruct->riftsnumsegments[i]));
+		#else
+		PyDict_SetItemString(dict,"numsegs"          ,PyInt_FromSsize_t((Py_ssize_t)riftstruct->riftsnumsegments[i]));
+		#endif
+
 		PyDict_SetItemString(dict,"segments"         ,PyArrayFromCopiedData(riftstruct->riftsnumsegments[i]    ,3,riftstruct->riftssegments[i]));
 		PyDict_SetItemString(dict,"pairs"            ,PyArrayFromCopiedData(riftstruct->riftsnumpairs[i]       ,2,riftstruct->riftspairs[i]));
 		PyDict_SetItemString(dict,"tips"             ,PyArrayFromCopiedData(1                                  ,2,&riftstruct->riftstips[2*i]));
 		PyDict_SetItemString(dict,"penaltypairs"     ,PyArrayFromCopiedData(riftstruct->riftsnumpenaltypairs[i],7,riftstruct->riftspenaltypairs[i]));
+		#if _PYTHON_MAJOR_ >= 3
 		PyDict_SetItemString(dict,"fill"             ,PyLong_FromSsize_t((Py_ssize_t)IceEnum));
 		PyDict_SetItemString(dict,"friction"         ,PyLong_FromSsize_t((Py_ssize_t)0));
+		#else
+		PyDict_SetItemString(dict,"fill"             ,PyInt_FromSsize_t((Py_ssize_t)IceEnum));
+		PyDict_SetItemString(dict,"friction"         ,PyInt_FromSsize_t((Py_ssize_t)0));
+		#endif
 		PyDict_SetItemString(dict,"fraction"         ,PyFloat_FromDouble(0.));
 		PyDict_SetItemString(dict,"fractionincrement",PyFloat_FromDouble(0.1));
