--- gnome-vfs-2.0.2/modules/file-method.c.orig	Tue Nov  5 21:57:35 2002
+++ gnome-vfs-2.0.2/modules/file-method.c	Tue Nov  5 23:46:52 2002
@@ -900,7 +900,7 @@
 		struct stat statbuf;
 		if (stat (path, &statbuf) == 0) {
 			char const *type = filesystem_type (path, path, &statbuf);
-			gboolean is_local = strcmp (type, "nfs") && strcmp (type, "afs");
+			gboolean is_local = strcmp (type, "nfs") && strcmp (type, "afs") && strcmp (type, "ncpfs");
 			local = GINT_TO_POINTER (is_local ? 1 : -1);
 			g_hash_table_insert (fstype_hash, path, local);
 		}
--- gnome-vfs-2.0.2/libgnomevfs/gnome-vfs-utils.c.orig	Wed Jul 17 16:15:20 2002
+++ gnome-vfs-2.0.2/libgnomevfs/gnome-vfs-utils.c	Wed Nov  6 02:19:50 2002
@@ -701,8 +701,6 @@
 
 	path = gnome_vfs_uri_get_path (vfs_uri);
 
-	unescaped_path = gnome_vfs_unescape_string (path, G_DIR_SEPARATOR_S);
-	
 	scheme = gnome_vfs_uri_get_scheme (vfs_uri);
 	
         /* We only handle the file scheme for now */
@@ -710,16 +708,20 @@
 		return GNOME_VFS_ERROR_NOT_SUPPORTED;
 	}
 
+	unescaped_path = gnome_vfs_unescape_string (path, G_DIR_SEPARATOR_S);
+	
 #if HAVE_STATVFS
 	statfs_result = statvfs (unescaped_path, &statfs_buffer);
 #else
 	statfs_result = statfs (unescaped_path, &statfs_buffer);   
 #endif  
 
+	g_free (unescaped_path);
+
 	if (statfs_result == 0) {
 		ret = GNOME_VFS_OK;
 	} else {
-		ret = gnome_vfs_result_from_errno ();
+		return gnome_vfs_result_from_errno ();
 	}
 	
 	g_return_val_if_fail (statfs_result == 0, FALSE);
@@ -727,8 +729,6 @@
 	free_blocks = statfs_buffer.f_bavail;
 
 	*size = block_size * free_blocks;
-
-	g_free (unescaped_path);
 	
 	return ret;
 }
