diff --git a/configure.ac b/configure.ac
index 05598fc..5c50d9a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -214,12 +214,14 @@ GNOME="disabled"
 if test "x${gm_platform}" != "xmingw" ; then
   AC_ARG_ENABLE(gnome, [  --disable-gnome		Disable GNOME support],,enable_gnome=yes)
   
-  if test "x$enable_gnome" = "xyes"; then
-    PKG_CHECK_MODULES([GNOME], [libgnome-2.0 >= 2.14.0 libgnomeui-2.0 >= 2.14.0], [found_gnome=yes])
-    AC_SUBST(GNOME_CFLAGS)
-    AC_SUBST(GNOME_LIBS)
-    GNOME="enabled"
-    AC_DEFINE(HAVE_GNOME,1,[GNOME support])
+  if $PKG_CONFIG --max-version 2.13.1; then
+    if test "x$enable_gnome" = "xyes"; then
+      PKG_CHECK_MODULES([GNOME], [libgnome-2.0 >= 2.14.0 libgnomeui-2.0 >= 2.14.0], [found_gnome=yes])
+      AC_SUBST(GNOME_CFLAGS)
+      AC_SUBST(GNOME_LIBS)
+      GNOME="enabled"
+      AC_DEFINE(HAVE_GNOME,1,[GNOME support])
+    fi
   fi
 fi
 AM_CONDITIONAL(HAVE_GNOME, test "x$found_gnome" = "xyes")
diff --git a/lib/gui/gmdialog.c b/lib/gui/gmdialog.c
index 3d7e468..0d125e4 100644
--- a/lib/gui/gmdialog.c
+++ b/lib/gui/gmdialog.c
@@ -55,10 +55,6 @@
 #define vsnprintf _vsnprintf
 #endif
 
-#ifdef HAVE_GNOME
-#include <gnome.h>
-#endif
-
 #include "config.h"
 
 
diff --git a/lib/toolbox/toolbox-gtk.c b/lib/toolbox/toolbox-gtk.c
index 0e3a1d7..653148b 100644
--- a/lib/toolbox/toolbox-gtk.c
+++ b/lib/toolbox/toolbox-gtk.c
@@ -40,7 +40,16 @@
 void
 gm_open_uri (const gchar *uri)
 {
+  GError *error = NULL;
+
   g_return_if_fail (uri != NULL);
 
+#if GTK_MAJOR_VERSION > 2 || GTK_MINOR_VERSION >= 13
+  if (!gtk_show_uri (NULL, uri, GDK_CURRENT_TIME, &error)) {
+    g_error_free (error);
+    gm_open_uri_fallback (uri);
+  }
+#else
   gm_open_uri_fallback (uri);
+#endif
 }
diff --git a/src/gui/callbacks.cpp b/src/gui/callbacks.cpp
index 40d25df..d2cd296 100644
--- a/src/gui/callbacks.cpp
+++ b/src/gui/callbacks.cpp
@@ -59,10 +59,7 @@
 #endif
 
 #ifdef HAVE_GNOME
-#undef _
-#undef N_
 #include <gnome.h>
-#include <libbonobo.h>
 #endif
 
 
@@ -217,10 +215,6 @@ void
 help_cb (G_GNUC_UNUSED GtkWidget *widget,
 	 G_GNUC_UNUSED gpointer data)
 {
-#ifdef HAVE_GNOME
-  GError *err = NULL;
-  gnome_help_display (PACKAGE_NAME ".xml", NULL, &err);
-#else
 #ifdef WIN32
   gchar *locale, *loc_ , *index_path;
   int hinst = 0;
@@ -256,7 +250,33 @@ help_cb (G_GNUC_UNUSED GtkWidget *widget,
 			DATA_DIR, SW_SHOWNORMAL);
     g_free (index_path);
   }
+#else /* !WIN32 */
+  GError *err = NULL;
+  gboolean success = FALSE;
+
+#ifdef HAVE_GNOME
+  success = gnome_help_display (PACKAGE_NAME ".xml", NULL, &err);
+#elif GTK_MAJOR_VERSION > 2 || GTK_MINOR_VERSION >= 13
+  success = gtk_show_uri (NULL, "ghelp:" PACKAGE_NAME, GDK_CURRENT_TIME, &err);
+#else
+  success = FALSE;
+  err = g_error_new_literal (g_quark_from_static_string ("ekiga"),
+                             0,
+			     _("Help display is not supported by your GTK+ version"));
 #endif
+
+  if (!success) {
+    GtkWidget *d;
+    d = gtk_message_dialog_new (GTK_WINDOW (GnomeMeeting::Process ()->GetMainWindow ()), 
+                                (GtkDialogFlags) (GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT),
+                                GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, 
+                                "%s", _("Unable to open help file."));
+    gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (d),
+                                              "%s", err->message);
+    g_signal_connect (d, "response", G_CALLBACK (gtk_widget_destroy), NULL);
+    gtk_window_present (GTK_WINDOW (d));
+    g_error_free (err);
+  }
 #endif
 }
 
diff --git a/src/gui/main.cpp b/src/gui/main.cpp
index 664b2e3..74e30a9 100644
--- a/src/gui/main.cpp
+++ b/src/gui/main.cpp
@@ -80,12 +80,6 @@
 #include <gdk/gdkwin32.h>
 #endif
 
-#ifdef HAVE_GNOME
-#undef _
-#undef N_
-#include <gnome.h>
-#endif
-
 #ifdef HAVE_NOTIFY
 #include <libnotify/notify.h>
 #endif
@@ -4347,9 +4341,6 @@ main (int argc,
   int debug_level = 0;
   int debug_level_up = 0;
   int error = -1;
-#ifdef HAVE_GNOME
-  GnomeProgram *program;
-#endif
 
   /* Globals */
 #ifndef WIN32
@@ -4411,20 +4402,10 @@ main (int argc,
   context = g_option_context_new (NULL);
   g_option_context_add_main_entries (context, arguments, PACKAGE_NAME);
   g_option_context_set_help_enabled (context, TRUE);
-  
-  /* GNOME Initialisation */
-#ifdef HAVE_GNOME
-  program = gnome_program_init (PACKAGE_NAME, VERSION,
-			        LIBGNOMEUI_MODULE, argc, argv,
-			        GNOME_PARAM_GOPTION_CONTEXT, context,
-			        GNOME_PARAM_HUMAN_READABLE_NAME, "ekiga",
-			        GNOME_PARAM_APP_DATADIR, DATA_DIR,
-			        (void *) NULL);
-#else
+
   g_option_context_add_group (context, gtk_get_option_group (TRUE));
   g_option_context_parse (context, &argc, &argv, NULL);
   g_option_context_free (context);
-#endif
 
 #ifdef HAVE_NOTIFY
   notify_init (PACKAGE_NAME);
@@ -4561,10 +4542,6 @@ main (int argc,
   gm_conf_save ();
   gm_conf_shutdown ();
 
-#ifdef HAVE_GNOME
-  g_object_unref (program);
-#endif
-
   /* deinitialize platform-specific code */
   gm_platform_shutdown ();
 
