Index: configure.in
===================================================================
--- configure.in	(revision 3060)
+++ configure.in	(working copy)
@@ -65,10 +65,10 @@
 
 PKG_CHECK_MODULES(YELP,
 [
+	gio-2.0
 	gconf-2.0
 	gnome-doc-utils >= 0.11.1
 	gtk+-unix-print-2.0
-	gnome-vfs-2.0 >= 1.1
 	gtk+-2.0 >= 2.10.0
 	libglade-2.0 >= 2.0.0
 	libgnome-2.0 >= 2.14.0
Index: src/yelp-search-pager.c
===================================================================
--- src/yelp-search-pager.c	(revision 3060)
+++ src/yelp-search-pager.c	(working copy)
@@ -27,7 +27,6 @@
 #include <string.h>
 #include <glib.h>
 #include <glib/gi18n.h>
-#include <libgnomevfs/gnome-vfs.h>
 #include <libxml/parser.h>
 #include <libxml/parserInternals.h>
 #include <libxml/xmlreader.h>
Index: src/test-resolver.c
===================================================================
--- src/test-resolver.c	(revision 3060)
+++ src/test-resolver.c	(working copy)
@@ -7,7 +7,6 @@
 
 #include <stdio.h>
 #include <glib.h>
-#include <libgnomevfs/gnome-vfs.h>
 #include "yelp-utils.h"
 
 
@@ -203,9 +202,6 @@
 {
   int i=1;
 
-  /* Used within yelp-utils */
-  gnome_vfs_init ();
-
   if (argc % 2 != 1) {
     printf ("Usage: %s [<test-uri> <type> <test-uri> <type> ... ]\n", argv[0]);
     printf ("type can be one of:\n");
Index: src/yelp-base.c
===================================================================
--- src/yelp-base.c	(revision 3060)
+++ src/yelp-base.c	(working copy)
@@ -23,7 +23,6 @@
 #include <config.h>
 
 #include <dbus/dbus-glib-bindings.h>
-#include <libgnomevfs/gnome-vfs.h>
 #include <gdk/gdkx.h>
 #define SN_API_NOT_YET_FROZEN
 #include <libsn/sn-launchee.h>
Index: src/yelp-search-parser.c
===================================================================
--- src/yelp-search-parser.c	(revision 3060)
+++ src/yelp-search-parser.c	(working copy)
@@ -27,7 +27,6 @@
 #include <string.h>
 #include <glib.h>
 #include <glib/gi18n.h>
-#include <libgnomevfs/gnome-vfs.h>
 #include <libxml/parser.h>
 #include <libxml/parserInternals.h>
 #include <libxml/xmlreader.h>
Index: src/yelp-window.c
===================================================================
--- src/yelp-window.c	(revision 3060)
+++ src/yelp-window.c	(working copy)
@@ -27,10 +27,10 @@
 #endif
 
 #include <glib/gi18n.h>
+#include <gio/gio.h>
 #include <gdk-pixbuf/gdk-pixbuf.h>
 #include <gdk/gdkkeysyms.h>
 #include <gtk/gtk.h>
-#include <libgnomevfs/gnome-vfs.h>
 #include <glade/glade.h>
 #include <string.h>
 #include <libgnome/gnome-config.h>
@@ -1590,12 +1590,12 @@
 		     YelpRrnType    type,
 		     gboolean       need_history)
 {
-    YelpWindowPriv  *priv;
-    GnomeVFSHandle  *handle;
-    GnomeVFSResult   result;
-    GnomeVFSFileSize n;
-    gchar            buffer[BUFFER_SIZE];
-    GtkAction       *action;
+    YelpWindowPriv   *priv;
+    GFile            *file;
+    GFileInputStream *stream;
+    gsize             n;
+    gchar             buffer[BUFFER_SIZE];
+    GtkAction        *action;
     gchar *real_uri = NULL;
     gchar *base_uri = NULL;
 
@@ -1619,9 +1619,10 @@
     
     window_setup_window (window, type, uri, frag_id, uri, priv->base_uri, need_history);
 
-    result = gnome_vfs_open (&handle, uri, GNOME_VFS_OPEN_READ);
+    file   = g_file_new_for_uri (uri);
+    stream = g_file_read (file, NULL, NULL);
 
-    if (result != GNOME_VFS_OK) {
+    if (stream == NULL) {
 	gchar *message;
 
 	message = g_strdup_printf (_("The file ‘%s’ could not be read.  This file might "
@@ -1653,8 +1654,8 @@
 	g_assert_not_reached ();
     }
 
-    while ((result = gnome_vfs_read
-	    (handle, buffer, BUFFER_SIZE, &n)) == GNOME_VFS_OK) {
+    while ((g_input_stream_read_all
+	    ((GInputStream *)stream, buffer, BUFFER_SIZE, &n, NULL, NULL))) {
 	gchar *tmp;
 	tmp = g_utf8_strup (buffer, n);
 	if (strstr (tmp, "<FRAMESET")) {
@@ -1667,8 +1668,11 @@
     yelp_html_close (priv->html_view);
 
  done:
-    if (handle)
-	gnome_vfs_close (handle);
+    if (file)
+        g_object_unref (file);
+    if (stream)
+        g_object_unref (stream);
+
     g_free (real_uri);
     gdk_window_set_cursor (GTK_WIDGET (window)->window, NULL);
 
@@ -2032,14 +2036,15 @@
     } else {
 	/* HTML file */
 
-	GnomeVFSHandle  *handle;
-	GnomeVFSResult   result;
-	GnomeVFSFileSize n;
-	gchar            buffer[BUFFER_SIZE];	
+	GFile            *file;
+	GFileInputStream *stream;
+	gsize             n;
+	gchar             buffer[BUFFER_SIZE];	
 	
-	result = gnome_vfs_open (&handle, priv->uri, GNOME_VFS_OPEN_READ);
+    file   = g_file_new_for_uri (priv->uri);
+    stream = g_file_read (file, NULL, NULL);
 	
-	if (result != GNOME_VFS_OK) {
+	if (stream == NULL) {
 	    /*GError *error = NULL;
 	    g_set_error (&error, YELP_ERROR, YELP_ERROR_IO,
 			 _("The file ‘%s’ could not be read.  This file might "
@@ -2048,6 +2053,11 @@
 			 uri);
 			 window_error (window, error, TRUE);*/
 	    /* TODO: Proper errors */
+
+	    if (file)
+	        g_object_unref (file);
+	    if (stream)
+	        g_object_unref (stream);
 	    return;
 	}
 	/* Assuming the file exists.  If it doesn't how did we get this far?
@@ -2065,10 +2075,15 @@
 	    g_assert_not_reached ();
 	}
 	
-	while ((result = gnome_vfs_read
-		(handle, buffer, BUFFER_SIZE, &n)) == GNOME_VFS_OK) {
+	while ((g_input_stream_read_all
+	    ((GInputStream *)stream, buffer, BUFFER_SIZE, &n, NULL, NULL))) {
 	    yelp_html_write (html, buffer, n);
 	}
+
+    if (file)
+        g_object_unref (file);
+    if (stream)
+        g_object_unref (stream);
 	
 	yelp_html_close (html);
 	
Index: src/test-uri.c
===================================================================
--- src/test-uri.c	(revision 3060)
+++ src/test-uri.c	(working copy)
@@ -24,7 +24,6 @@
 
 #include <libgnome/gnome-init.h>
 #include <libgnome/gnome-program.h>
-#include <libgnomevfs/gnome-vfs.h>
 
 #include "yelp-utils.h"
 
@@ -107,8 +106,6 @@
 				  GNOME_PROGRAM_STANDARD_PROPERTIES,
 				  NULL);
 
-    gnome_vfs_init ();
-
     for (i = 1; i < argc; i++) {
 	if (i != 1)
 	    printf ("\n");
@@ -119,7 +116,5 @@
 	    printf ("Failed to load URI: %s\n", argv[i]);
     }
 
-    gnome_vfs_shutdown ();
-
     return 0;
 }
Index: src/yelp-utils.c
===================================================================
--- src/yelp-utils.c	(revision 3060)
+++ src/yelp-utils.c	(working copy)
@@ -27,8 +27,7 @@
 
 #include <glib.h>
 #include <glib/gi18n.h>
-#include <libgnomevfs/gnome-vfs.h>
-#include <libgnomevfs/gnome-vfs-mime-utils.h>
+#include <gio/gio.h>
 
 #include <string.h>
 #define I_KNOW_RARIAN_0_8_IS_UNSTABLE
@@ -56,6 +55,7 @@
 YelpRrnType
 resolve_process_ghelp (char *uri, gchar **result)
 {
+    gboolean uncertain;
     RrnReg *reg = rrn_find_from_ghelp (&uri[6]);
     YelpRrnType type = YELP_RRN_TYPE_ERROR;
 
@@ -70,8 +70,8 @@
 	if (reg->type && *(reg->type))
 	    mime = g_strdup (reg->type);
 	else 
-	    mime = gnome_vfs_get_mime_type (*result);
-	
+	    mime = g_content_type_guess (*result, NULL, 0, &uncertain);
+
 	if (!mime) {
 	    type = YELP_RRN_TYPE_ERROR;
 	} else if (g_str_equal (mime, "text/xml") || 
@@ -149,13 +149,15 @@
 YelpRrnType
 resolve_full_file (const gchar *path)
 {
-    gchar *mime_type;
+    gchar    *mime_type;
+    gboolean  uncertain;
+
     YelpRrnType type = YELP_RRN_TYPE_ERROR;
 
     if (!g_file_test (path, G_FILE_TEST_EXISTS)) {
 	return YELP_RRN_TYPE_ERROR;
     }
-    mime_type = gnome_vfs_get_mime_type (path);
+    mime_type = g_content_type_guess (path, NULL, 0, &uncertain);
     if (mime_type == NULL) {
 	return YELP_RRN_TYPE_ERROR;
     }
Index: src/yelp-toc-pager.c
===================================================================
--- src/yelp-toc-pager.c	(revision 3060)
+++ src/yelp-toc-pager.c	(working copy)
@@ -32,7 +32,7 @@
 #include <glib.h>
 #include <glib/gstdio.h>
 #include <glib/gi18n.h>
-#include <libgnomevfs/gnome-vfs.h>
+#include <gio/gio.h>
 #include <libxml/parser.h>
 #include <libxml/parserInternals.h>
 #include <libxml/xmlreader.h>
@@ -894,9 +894,9 @@
     /* if this is NULL, then we are done processing */
     /* FIXME: cleanup any leftover stuff here */
     if (!first) {
-	GnomeVFSURI *fromfile = gnome_vfs_uri_new (content_list);
-	GnomeVFSURI *tofile = gnome_vfs_uri_new (sk_file);
-	gint result = 0;
+	GFile *fromfile = g_file_new_for_uri (content_list);
+	GFile *tofile   = g_file_new_for_uri (sk_file);
+	gboolean result = FALSE;
 
 	/* create the new cache file */
 	if (!(newindex = g_fopen (index_file, "w")))
@@ -908,16 +908,13 @@
 
 	/* copy the newly created file to ~/.gnome2/yelp.d/omfindex.xml,
 	 * overwriting the old one if necessary */
-	result = gnome_vfs_xfer_uri (fromfile, tofile, 
-	                             GNOME_VFS_XFER_DEFAULT,
-			             GNOME_VFS_XFER_ERROR_MODE_ABORT,
-			             GNOME_VFS_XFER_OVERWRITE_MODE_REPLACE,
-			             NULL, NULL);
+	result = g_file_copy (fromfile, tofile, G_FILE_COPY_OVERWRITE,
+	                      NULL, NULL, NULL, NULL);
 
-	gnome_vfs_uri_unref (fromfile);
-	gnome_vfs_uri_unref (tofile);
+	g_object_unref (fromfile);
+	g_object_unref (tofile);
 
-	if (result != GNOME_VFS_OK) 
+	if (result != TRUE) 
 	    g_critical ("Unable to copy %s to %s\n", content_list, sk_file);
 
 	if (priv->omf_dirhash)
Index: src/yelp-main.c
===================================================================
--- src/yelp-main.c	(revision 3060)
+++ src/yelp-main.c	(working copy)
@@ -30,7 +30,6 @@
 #include <gdk/gdkx.h>
 #include <libgnome/gnome-program.h>
 #include <libgnomeui/gnome-ui-init.h>
-#include <libgnomevfs/gnome-vfs.h>
 #include <libgnomeui/gnome-client.h>
 #include <dbus/dbus-glib-bindings.h>
 #include <string.h>
@@ -378,8 +377,6 @@
 	g_set_application_name (_("Help"));
 	gtk_window_set_default_icon_name ("gnome-help");
 
-	gnome_vfs_init ();
-
 	if (!private) {
 		connection = dbus_g_bus_get (DBUS_BUS_SESSION, NULL);
 		if (!connection) {
