--- 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	2002-07-17 16:15:20.000000000 +0300
+++ gnome-vfs-2.0.2/libgnomevfs/gnome-vfs-utils.c	2002-11-13 14:52:14.000000000 +0200
@@ -717,9 +717,24 @@
 #endif  
 
 	if (statfs_result == 0) {
+		/* ncpfs does not know the amount of free space */
+		if (statfs_buffer.f_bfree == 0 && statfs_buffer.f_bavail == 0) {
+			struct statfs statfs_buffer2;
+			if (statfs (unescaped_path, &statfs_buffer2) == 0) {
+				/* linux/ncp_fs.h: NCP_SUPER_MAGIC == 0x564c */
+				if (statfs_buffer2.f_type == 0x564c) {
+					g_free (unescaped_path);
+					return GNOME_VFS_ERROR_NOT_SUPPORTED;
+				}
+			} else {
+				g_free (unescaped_path);
+				return gnome_vfs_result_from_errno ();
+			}
+		}
 		ret = GNOME_VFS_OK;
 	} else {
-		ret = gnome_vfs_result_from_errno ();
+		g_free (unescaped_path);
+		return gnome_vfs_result_from_errno ();
 	}
 	
 	g_return_val_if_fail (statfs_result == 0, FALSE);
