Index: configure.in
===================================================================
--- configure.in	(revision 2210)
+++ configure.in	(working copy)
@@ -18,13 +18,13 @@
 dnl
 dnl ==========================================================================
 
-GLIB_REQUIRED=2.12.0
+GLIB_REQUIRED=2.15.0
 GTK_REQUIRED=2.10.0
 LIBGNOME_REQUIRED=2.6.0
 LIBGNOMEUI_REQUIRED=2.6.0
 GNOME_VFS_REQUIRED=2.10.0
 LIBGLADE_REQUIRED=2.4.0
-NAUTILUS_REQUIRED=2.10.0
+NAUTILUS_REQUIRED=2.22.1
 
 AC_SUBST(GLIB_REQUIRED)
 AC_SUBST(GTK_REQUIRED)
@@ -38,6 +38,7 @@
 
 PKG_CHECK_MODULES(FR,					\
 	glib-2.0 >= $GLIB_REQUIRED			\
+	gio-2.0 >= $GLIB_REQUIRED			\
 	gthread-2.0					\
 	gtk+-2.0 >= $GTK_REQUIRED			\
 	libgnome-2.0 >= $LIBGNOME_REQUIRED		\
@@ -56,8 +57,8 @@
 
 if test x"$enable_nautilus_actions" != xno; then
 	if pkg-config --atleast-version=$NAUTILUS_REQUIRED libnautilus-extension; then
-		NAUTILUS_CFLAGS=`pkg-config --cflags libnautilus-extension glib-2.0 gnome-vfs-2.0`
-		NAUTILUS_LIBS=`pkg-config --libs libnautilus-extension glib-2.0 gnome-vfs-2.0`
+		NAUTILUS_CFLAGS=`pkg-config --cflags libnautilus-extension glib-2.0 gio-2.0`
+		NAUTILUS_LIBS=`pkg-config --libs libnautilus-extension glib-2.0 gio-2.0`
 		build_nautilus_actions=yes
 	fi
 fi
Index: nautilus/nautilus-fileroller.c
===================================================================
--- nautilus/nautilus-fileroller.c	(revision 2210)
+++ nautilus/nautilus-fileroller.c	(working copy)
@@ -24,9 +24,7 @@
 #include <config.h>
 #include <string.h>
 #include <glib/gi18n-lib.h>
-#include <libgnomevfs/gnome-vfs-utils.h>
-#include <libgnomevfs/gnome-vfs-file-info.h>
-#include <libgnomevfs/gnome-vfs-ops.h>
+#include <gio/gio.h>
 #include <libnautilus-extension/nautilus-extension-types.h>
 #include <libnautilus-extension/nautilus-file-info.h>
 #include <libnautilus-extension/nautilus-menu-provider.h>
@@ -206,32 +204,17 @@
 	for (scan = files; scan; scan = scan->next) {
 		NautilusFileInfo *file = scan->data;
 
-		if (all_archives && ! is_archive (file))
-			all_archives = FALSE;
+		if ((all_archives = is_archive (file)) == FALSE)
+			break;
 
-
 		if (can_write) {
-			char             *parent_uri;
-			GnomeVFSFileInfo *info;
-			GnomeVFSResult    result;
+			NautilusFileInfo *parent;
 
-			parent_uri = nautilus_file_info_get_parent_uri (file);
-			info = gnome_vfs_file_info_new ();
-			
-			result = gnome_vfs_get_file_info (parent_uri,
-							  info,
-							  (GNOME_VFS_FILE_INFO_FOLLOW_LINKS
-					                   | GNOME_VFS_FILE_INFO_GET_ACCESS_RIGHTS));
-			if ((result == GNOME_VFS_OK) && (info->valid_fields & GNOME_VFS_FILE_INFO_FIELDS_PERMISSIONS))
-				can_write = (info->permissions & GNOME_VFS_PERM_ACCESS_WRITABLE) || (info->permissions & GNOME_VFS_PERM_USER_WRITE);
-				
-			gnome_vfs_file_info_unref (info);
-			g_free (parent_uri);
+			parent = nautilus_file_info_get_parent_info (file);
+ 			can_write = nautilus_file_info_can_write (parent);
 		}
 	}
 
-	/**/
-
 	one_item = (files != NULL) && (files->next == NULL);
 	one_archive = one_item && all_archives;
 
