diff --git a/Lib/plat-mac/EasyDialogs.py b/Lib/plat-mac/EasyDialogs.py
index cb1ef99..25a791a 100644
--- a/Lib/plat-mac/EasyDialogs.py
+++ b/Lib/plat-mac/EasyDialogs.py
@@ -30,6 +30,7 @@
 import Carbon.File
 import macfs
 import macresource
+import os
 
 _initialized = 0
 
@@ -660,7 +661,7 @@
 		# This is gross, and probably incorrect too
 		vrefnum, dirid, name = rr.selection[0].as_tuple()
 		pardir_fss = Carbon.File.FSSpec((vrefnum, dirid, ''))
-		pardir_fsr = Carbon.File.FSRef(fss)
+		pardir_fsr = Carbon.File.FSRef(pardir_fss)
 		pardir_path = pardir_fsr.FSRefMakePath()  # This is utf-8
 		name_utf8 = unicode(name, 'macroman').encode('utf8')
 		fullpath = os.path.join(pardir_path, name_utf8)
diff --git a/Mac/Modules/Nav.c b/Mac/Modules/Nav.c
index dd6a57c..58d4c05 100644
--- a/Mac/Modules/Nav.c
+++ b/Mac/Modules/Nav.c
@@ -56,7 +56,7 @@
 	
 	if (!dict) return;
 	if ( (pyfunc = PyDict_GetItemString(dict, "eventProc")) == NULL ) {
-		PyErr_Clear();
+		PyErr_Print();
 		return;
 	}
 	if ( pyfunc == Py_None ) {
@@ -74,8 +74,8 @@
 	if ( rv )
 		Py_DECREF(rv);
 	else {
-		fprintf(stderr, "Nav: exception in eventProc callback\n");
-		PyErr_Clear();
+		PySys_WriteStderr("Nav: exception in eventProc callback\n");
+		PyErr_Print();
 	}
 }
 
@@ -90,7 +90,7 @@
 	
 	if (!dict) return false;
 	if ( (pyfunc = PyDict_GetItemString(dict, "previewProc")) == NULL ) {
-		PyErr_Clear();
+		PyErr_Print();
 		return false;
 	}
 	rv = PyObject_CallFunction(pyfunc, "s#", (void *)callBackParms, sizeof(NavCBRec));
@@ -98,8 +98,8 @@
 		c_rv = PyObject_IsTrue(rv);
 		Py_DECREF(rv);
 	} else {
-		fprintf(stderr, "Nav: exception in previewProc callback\n");
-		PyErr_Clear();
+		PySys_WriteStderr("Nav: exception in previewProc callback\n");
+		PyErr_Print();
 	}
 	return c_rv;
 }
@@ -113,20 +113,21 @@
 	PyObject *pyfunc;
 	PyObject *rv;
 	Boolean c_rv = false;
+	PyObject theItemCopy;
 	
 	if (!dict) return false;
 	if ( (pyfunc = PyDict_GetItemString(dict, "filterProc")) == NULL ) {
-		PyErr_Clear();
+		PyErr_Print();
 		return false;
 	}
 	rv = PyObject_CallFunction(pyfunc, "O&s#h",
-		AEDesc_New, theItem, info, sizeof(NavFileOrFolderInfo), (short)filterMode);
+		AEDesc_NewBorrowed, theItem, info, sizeof(NavFileOrFolderInfo), (short)filterMode);
 	if ( rv ) {
 		c_rv = PyObject_IsTrue(rv);
 		Py_DECREF(rv);
 	} else {
-		fprintf(stderr, "Nav: exception in filterProc callback\n");
-		PyErr_Clear();
+		PySys_WriteStderr("Nav: exception in filterProc callback\n");
+		PyErr_Print();
 	}
 	return c_rv;
 }
