Handling of defaultLocation argument was wrong, causing a crash when used. Fixed.
diff --git a/Mac/Modules/Nav.c b/Mac/Modules/Nav.c
index 236089f..452baa1 100644
--- a/Mac/Modules/Nav.c
+++ b/Mac/Modules/Nav.c
@@ -147,6 +147,7 @@
 	int pos = 0;
 	PyObject *key, *value;
 	char *keystr;
+	AEDesc *defaultLocation_storage;
 	
 	NavGetDefaultDialogOptions(opt);
 
@@ -157,8 +158,15 @@
 		}
 		keystr = PyString_AsString(key);
 		if( strcmp(keystr, "defaultLocation") == 0 ) {
-			if ( !PyArg_Parse(value, "O&", AEDesc_Convert, defaultLocationP) )
+			if ( (defaultLocation_storage = PyMem_NEW(AEDesc, 1)) == NULL ) {
+				PyErr_NoMemory();
 				return 0;
+			}
+			if ( !PyArg_Parse(value, "O&", AEDesc_Convert, defaultLocation_storage) ) {
+				PyMem_DEL(defaultLocation_storage);
+				return 0;
+			}
+			*defaultLocationP = defaultLocation_storage;
 		} else if( strcmp(keystr, "version") == 0 ) {
 			if ( !PyArg_Parse(value, "h", &opt->version) )
 				return 0;
@@ -435,6 +443,7 @@
 		return NULL;
 	err = NavGetFile(defaultLocation, &reply, &dialogOptions,
 			eventProc, previewProc, filterProc, typeList, (void *)dict);
+	PyMem_XDEL(defaultLocation);
 	if ( err ) {
 		PyErr_Mac(ErrorObject, err);
 		return NULL;
@@ -471,6 +480,7 @@
 		return NULL;
 	err = NavPutFile(defaultLocation, &reply, &dialogOptions,
 			eventProc, fileType, fileCreator, (void *)dict);
+	PyMem_XDEL(defaultLocation);
 	if ( err ) {
 		PyErr_Mac(ErrorObject, err);
 		return NULL;
@@ -606,6 +616,7 @@
 		return NULL;
 	err = NavChooseFile(defaultLocation, &reply, &dialogOptions,
 			eventProc, previewProc, filterProc, typeList, (void *)dict);
+	PyMem_XDEL(defaultLocation);
 	if ( err ) {
 		PyErr_Mac(ErrorObject, err);
 		return NULL;
@@ -641,6 +652,7 @@
 		return NULL;
 	err = NavChooseFolder(defaultLocation, &reply, &dialogOptions,
 			eventProc, filterProc, (void *)dict);
+	PyMem_XDEL(defaultLocation);
 	if ( err ) {
 		PyErr_Mac(ErrorObject, err);
 		return NULL;
@@ -676,6 +688,7 @@
 		return NULL;
 	err = NavChooseVolume(defaultLocation, &reply, &dialogOptions,
 			eventProc, filterProc, (void *)dict);
+	PyMem_XDEL(defaultLocation);
 	if ( err ) {
 		PyErr_Mac(ErrorObject, err);
 		return NULL;
@@ -711,6 +724,7 @@
 		return NULL;
 	err = NavChooseObject(defaultLocation, &reply, &dialogOptions,
 			eventProc, filterProc, (void *)dict);
+	PyMem_XDEL(defaultLocation);
 	if ( err ) {
 		PyErr_Mac(ErrorObject, err);
 		return NULL;
@@ -744,6 +758,7 @@
 	if (!filldialogoptions(dict, &defaultLocation, &dialogOptions, &eventProc, NULL, NULL, NULL, NULL, NULL))
 		return NULL;
 	err = NavNewFolder(defaultLocation, &reply, &dialogOptions, eventProc, (void *)dict);
+	PyMem_XDEL(defaultLocation);
 	if ( err ) {
 		PyErr_Mac(ErrorObject, err);
 		return NULL;