Index: totem.spec.in
===================================================================
--- totem.spec.in	(revision 4445)
+++ totem.spec.in	(working copy)
@@ -21,7 +21,7 @@
 BuildRequires: gcc-c++, pkgconfig, gettext, scrollkeeper
 BuildRequires: gstreamer-devel >= %gstreamer_version
 BuildRequires: gstreamer-plugins-base-devel >= %gstreamer_plugins_base_version
-BuildRequires: gnome-desktop-devel >= 2.6.0, gnome-vfs2-devel, libglade2-devel
+BuildRequires: gnome-desktop-devel >= 2.6.0, gnome-vfs2-devel
 BuildRequires: nautilus-devel
 BuildRequires: perl-XML-Parser
 BuildRequires: iso-codes-devel
Index: src/plugins/totem-plugin.c
===================================================================
--- src/plugins/totem-plugin.c	(revision 4445)
+++ src/plugins/totem-plugin.c	(working copy)
@@ -275,3 +275,18 @@
 	}
 	return ret;
 }
+
+GtkBuilder *
+totem_plugin_load_interface (TotemPlugin *plugin, const char *name,
+			     gboolean fatal, GtkWindow *parent,
+			     gpointer user_data)
+{
+	GtkBuilder *builder = NULL;
+	char *filename;
+
+	filename = totem_plugin_find_file (plugin, name);
+	builder = totem_interface_load_with_full_path (filename, fatal, parent, user_data);
+	g_free (filename);
+
+	return builder;
+}
Index: src/plugins/skipto/totem-skipto.c
===================================================================
--- src/plugins/skipto/totem-skipto.c	(revision 4445)
+++ src/plugins/skipto/totem-skipto.c	(working copy)
@@ -43,6 +43,7 @@
 #include "totem-uri.h"
 #include "video-utils.h"
 #include "bacon-video-widget.h"
+#include "totem-interface.h"
 
 static GObjectClass *parent_class = NULL;
 static void totem_skipto_class_init	(TotemSkiptoClass *class);
@@ -162,19 +163,16 @@
 }
 
 GtkWidget*
-totem_skipto_new (const char *builder_filename, Totem *totem)
+totem_skipto_new (TotemPlugin *plugin, Totem *totem)
 {
 	TotemSkipto *skipto;
 	GtkWidget *container;
-	GError *error = NULL;
 
-	g_return_val_if_fail (builder_filename != NULL, NULL);
-
 	skipto = TOTEM_SKIPTO (g_object_new (TOTEM_TYPE_SKIPTO, NULL));
 
 	skipto->priv->totem = totem;
-	skipto->priv->xml = gtk_builder_new ();
-	gtk_builder_add_from_file (skipto->priv->xml, builder_filename, &error);
+	skipto->priv->xml = totem_plugin_load_interface (plugin, "skipto.ui",
+							 TRUE, NULL, skipto);
 
 	if (skipto->priv->xml == NULL) {
 		g_object_unref (skipto);
Index: src/plugins/skipto/totem-skipto.h
===================================================================
--- src/plugins/skipto/totem-skipto.h	(revision 4445)
+++ src/plugins/skipto/totem-skipto.h	(working copy)
@@ -33,6 +33,7 @@
 #include <gtk/gtkdialog.h>
 
 #include "totem.h"
+#include "totem-plugin.h"
 
 G_BEGIN_DECLS
 
@@ -58,7 +59,7 @@
 };
 
 GtkType totem_skipto_get_type	(void);
-GtkWidget *totem_skipto_new	(const char *glade_filename, Totem *totem);
+GtkWidget *totem_skipto_new	(TotemPlugin *plugin, Totem *totem);
 gint64 totem_skipto_get_range	(TotemSkipto *skipto);
 void totem_skipto_update_range	(TotemSkipto *skipto, gint64 time);
 void totem_skipto_set_seekable	(TotemSkipto *skipto, gboolean seekable);
Index: src/plugins/skipto/totem-skipto-plugin.c
===================================================================
--- src/plugins/skipto/totem-skipto-plugin.c	(revision 4445)
+++ src/plugins/skipto/totem-skipto-plugin.c	(working copy)
@@ -162,8 +162,6 @@
 static void
 run_skip_to_dialog (TotemSkiptoPlugin *plugin)
 {
-	char *builder_path;
-
 	if (totem_is_seekable (plugin->totem) == FALSE)
 		return;
 
@@ -173,9 +171,7 @@
 		return;
 	}
 
-	builder_path = totem_plugin_find_file (TOTEM_PLUGIN (plugin), "skipto.ui");
-	plugin->st = TOTEM_SKIPTO (totem_skipto_new (builder_path, plugin->totem));
-	g_free (builder_path);
+	plugin->st = TOTEM_SKIPTO (totem_skipto_new (TOTEM_PLUGIN (plugin), plugin->totem));
 	g_signal_connect (G_OBJECT (plugin->st), "delete-event",
 				G_CALLBACK (gtk_widget_destroy), NULL);
 	g_signal_connect (G_OBJECT (plugin->st), "response",
@@ -228,7 +224,7 @@
 		{ "skip-to", GTK_STOCK_JUMP_TO, N_("_Skip to..."), "s", N_("Skip to a specific time"), G_CALLBACK (skip_to_action_callback) }
 	};
 
-	builder_path = totem_plugin_find_file (TOTEM_PLUGIN (plugin), "skip_to.glade");
+	builder_path = totem_plugin_find_file (TOTEM_PLUGIN (plugin), "skipto.ui");
 	if (builder_path == NULL) {
 		g_set_error (error, TOTEM_PLUGIN_ERROR, TOTEM_PLUGIN_ERROR_ACTIVATION,
 				_("Could not load the \"Skip to\" dialogue interface."));
Index: src/plugins/totem-plugin.h
===================================================================
--- src/plugins/totem-plugin.h	(revision 4445)
+++ src/plugins/totem-plugin.h	(working copy)
@@ -106,6 +106,12 @@
 char *		 totem_plugin_find_file		(TotemPlugin *plugin,
 						 const char *file);
 
+GtkBuilder *     totem_plugin_load_interface    (TotemPlugin *plugin,
+						 const char *name,
+						 gboolean fatal,
+						 GtkWindow *parent,
+						 gpointer user_data);
+
 GList *          totem_get_plugin_paths            (void);
 
 /*
Index: src/totem-statusbar.h
===================================================================
--- src/totem-statusbar.h	(revision 4445)
+++ src/totem-statusbar.h	(working copy)
@@ -78,10 +78,6 @@
 						 guint percentage);
 void       totem_statusbar_pop			(TotemStatusbar *statusbar);
 
-GtkWidget *totem_statusbar_new_from_glade	(gchar *widget_name,
-						 gchar *string1, gchar *string2,
-						 gint int1, gint int2);
-
 G_END_DECLS
 
 #endif /* __TOTEM_STATUSBAR_H__ */
Index: src/totem-time-label.h
===================================================================
--- src/totem-time-label.h	(revision 4445)
+++ src/totem-time-label.h	(working copy)
@@ -29,9 +29,5 @@
 					 gint64 time, gint64 length);
 void       totem_time_label_set_seeking (TotemTimeLabel *label,
            gboolean seeking);
-GtkWidget *totem_time_label_new_from_glade
-					(gchar *widget_name,
-					 gchar *string1, gchar *string2,
-					 gint int1, gint int2);
 
 #endif /* TOTEM_TIME_LABEL_H */
Index: src/totem-interface.c
===================================================================
--- src/totem-interface.c	(revision 4445)
+++ src/totem-interface.c	(working copy)
@@ -101,10 +101,21 @@
 {
 	GtkBuilder *builder = NULL;
 	char *filename;
-	GError *error = NULL;
 
 	filename = totem_interface_get_full_path (name);
+	builder = totem_interface_load_with_full_path (filename, fatal, parent, user_data);
+	g_free (filename);
 
+	return builder;
+}
+
+GtkBuilder *
+totem_interface_load_with_full_path (const char *filename, gboolean fatal, 
+				     GtkWindow *parent, gpointer user_data)
+{
+	GtkBuilder *builder = NULL;
+	GError *error = NULL;
+
 	if (filename != NULL) {
 		builder = gtk_builder_new ();
 		gtk_builder_set_translation_domain (builder, GETTEXT_PACKAGE);
@@ -113,6 +124,7 @@
 	if (builder == NULL || gtk_builder_add_from_file (builder, filename, &error) == FALSE)
 	{
 		char *msg;
+		gchar * name = g_path_get_basename (filename);
 
 		msg = g_strdup_printf (_("Couldn't load the '%s' interface. %s"), name, error->message);
 		if (fatal == FALSE)
@@ -121,12 +133,11 @@
 			totem_interface_error_blocking (msg, _("Make sure that Totem is properly installed."), parent);
 
 		g_free (msg);
-		g_free (filename);
+		g_free (name);
 		g_error_free (error);
 
 		return NULL;
 	}
-	g_free (filename);
 
 	gtk_builder_connect_signals (builder, user_data);
 
Index: src/totem-interface.h
===================================================================
--- src/totem-interface.h	(revision 4445)
+++ src/totem-interface.h	(working copy)
@@ -33,6 +33,10 @@
 						 gboolean fatal,
 						 GtkWindow *parent,
 						 gpointer user_data);
+GtkBuilder      *totem_interface_load_with_full_path (const char *filename, 
+						      gboolean fatal, 
+						      GtkWindow *parent,
+						      gpointer user_data);
 void		 totem_interface_error		(const char *title,
 						 const char *reason,
 						 GtkWindow *parent);
