Index: configure.ac
===================================================================
--- configure.ac	(revision 379)
+++ configure.ac	(working copy)
@@ -8,6 +8,7 @@
 
 m4_define(required_pygtk_version, 2.8.0)
 m4_define(required_python_abi, 2.4)
+m4_define(required_pygobject_version, 2.15.1)
 
 dnl put the ACLOCAL flags in the makefile
 ACLOCAL="$ACLOCAL $ACLOCAL_FLAGS"
@@ -30,11 +31,17 @@
 import gobject
 assert gobject.pygtk_version >= tuple(map(int, 'required_pygtk_version'.split('.')))
 "
+dnl Check for correctly installed pygobject
+AC_MSG_CHECKING(for pygobject required_pygobject_version installed for python required_python_abi)
+prog="
+import gobject
+assert gobject.pygobject_version >= tuple(map(int, 'required_pygobject_version'.split('.')))
+"
 if $PYTHON -c "$prog" 1>&AC_FD_CC 2>&AC_FD_CC; then
     AC_MSG_RESULT(found)
 else
     AC_MSG_RESULT(not found)
-    AC_MSG_ERROR(required pygtk version not found)
+    AC_MSG_ERROR(required pygtk/pygobject version not found)
 fi
 
 dnl Check for correctly installed python-glade
Index: Alacarte/MainWindow.py
===================================================================
--- Alacarte/MainWindow.py	(revision 379)
+++ Alacarte/MainWindow.py	(working copy)
@@ -16,7 +16,7 @@
 #   License along with this library; if not, write to the Free Software
 #   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
-import gtk, gtk.glade, gmenu, gobject, gnomevfs, gnome.ui
+import gtk, gtk.glade, gmenu, gobject, gio, gnome.ui
 import cgi, os
 import gettext
 import subprocess
@@ -535,21 +535,18 @@
 			else:
 				path = (len(items) - 1,)
 				after = items[path][3]
-			file_path = gnomevfs.unescape_string(selection.data, '').strip()
+			file_path = selection.data.decode('string_escape').strip()
 			if not file_path.startswith('file:'):
 				return
-			file_info = gnomevfs.get_file_info(
-				file_path, gnomevfs.FILE_INFO_GET_MIME_TYPE|
-				gnomevfs.FILE_INFO_FORCE_SLOW_MIME_TYPE|
-				gnomevfs.FILE_INFO_FOLLOW_LINKS|gnomevfs.FILE_INFO_DEFAULT
-				)
-			if file_info.mime_type == 'application/x-desktop':
-				handle = gnomevfs.open(file_path)
-				data = handle.read(file_info.size)
-				open('/tmp/alacarte-dnd.desktop', 'w').write(data)
+			myfile = gio.File(uri=file_path)
+			file_info = myfile.query_info("*")
+			contents = file_info.get_content_type()
+			if gio.content_type_get_mime_type(contents) == 'application/x-desktop':
+				input_stream = myfile.read()
+				open('/tmp/alacarte-dnd.desktop', 'w').write(input_stream.read())
 				parser = util.DesktopParser('/tmp/alacarte-dnd.desktop')
 				self.editor.createItem(parent, parser.get('Icon'), parser.get('Name', self.editor.locale), parser.get('Comment', self.editor.locale), parser.get('Exec'), parser.get('Terminal'), before, after)
-			elif file_info.mime_type in ('application/x-shellscript', 'application/x-executable'):
+			elif gio.content_type_get_mime_type(contents) in ('application/x-shellscript', 'application/x-executable'):
 				self.editor.createItem(parent, None, os.path.split(file_path)[1].strip(), None, file_path.replace('file://', '').strip(), False, before, after)
 		self.drag_data = None
 
