[network-manager-applet] core: convert to GtkBuilder (bgo #625248)



commit 32f66acbc06dfd645aa41f2bf14d197f414fd163
Author: Pablo Castellano <pablog src gnome org>
Date:   Sun Nov 28 15:47:37 2010 -0600

    core: convert to GtkBuilder (bgo #625248)
    
    [dcbw: fixes for additions after the patch was posted]

 configure.ac                                       |    9 +-
 po/POTFILES.in                                     |   22 +-
 src/Makefile.am                                    |   10 +-
 src/applet-device-wired.c                          |   25 +-
 src/applet-dialogs.c                               |  149 ++--
 src/applet.c                                       |   23 +-
 src/applet.h                                       |    5 +-
 src/{applet.glade => applet.ui}                    | 1092 +++++++++++---------
 src/connection-editor/Makefile.am                  |   30 +-
 .../{ce-page-dsl.glade => ce-page-dsl.ui}          |   46 +-
 .../{ce-page-ip4.glade => ce-page-ip4.ui}          |  229 +++--
 .../{ce-page-ip6.glade => ce-page-ip6.ui}          |  219 +++--
 .../{ce-page-mobile.glade => ce-page-mobile.ui}    |  175 ++--
 .../{ce-page-ppp.glade => ce-page-ppp.ui}          |  196 ++--
 .../{ce-page-wired.glade => ce-page-wired.ui}      |  152 ++-
 ...security.glade => ce-page-wireless-security.ui} |   45 +-
 ...{ce-page-wireless.glade => ce-page-wireless.ui} |  206 +++--
 src/connection-editor/ce-page.c                    |    4 +-
 src/connection-editor/ce-page.h                    |    3 +-
 .../{ce-vpn-wizard.glade => ce-vpn-wizard.ui}      |   81 +-
 src/connection-editor/ip4-routes-dialog.c          |   93 +-
 src/connection-editor/ip6-routes-dialog.c          |   93 +-
 src/connection-editor/nm-connection-editor.c       |   57 +-
 src/connection-editor/nm-connection-editor.h       |    3 +-
 ...ection-editor.glade => nm-connection-editor.ui} |  249 +++---
 src/connection-editor/nm-connection-list.c         |   26 +-
 src/connection-editor/nm-connection-list.h         |    3 +-
 src/connection-editor/page-dsl.c                   |   20 +-
 src/connection-editor/page-ip4.c                   |   38 +-
 src/connection-editor/page-ip6.c                   |   34 +-
 src/connection-editor/page-mobile.c                |   36 +-
 src/connection-editor/page-ppp.c                   |   30 +-
 src/connection-editor/page-wired-security.c        |    5 +-
 src/connection-editor/page-wired.c                 |   38 +-
 src/connection-editor/page-wireless-security.c     |   29 +-
 src/connection-editor/page-wireless.c              |   58 +-
 src/connection-editor/ppp-auth-methods-dialog.c    |   70 +-
 src/connection-editor/vpn-helpers.c                |   23 +-
 src/gnome-bluetooth/bt-widget.c                    |    2 +-
 src/utils/Makefile.am                              |    2 +-
 src/utils/mobile-wizard.c                          |    1 -
 src/vpn-password-dialog.c                          |    1 -
 src/wired-dialog.c                                 |   52 +-
 src/wired-dialog.h                                 |    2 +-
 src/wireless-dialog.c                              |   95 +-
 src/wireless-security/eap-method-leap.c            |   45 +-
 src/wireless-security/eap-method-leap.h            |    2 +-
 src/wireless-security/eap-method-peap.c            |   69 +-
 src/wireless-security/eap-method-peap.h            |    2 +-
 src/wireless-security/eap-method-simple.c          |   54 +-
 src/wireless-security/eap-method-simple.h          |    2 +-
 src/wireless-security/eap-method-tls.c             |   80 +-
 src/wireless-security/eap-method-tls.h             |    2 +-
 src/wireless-security/eap-method-ttls.c            |   65 +-
 src/wireless-security/eap-method-ttls.h            |    2 +-
 src/wireless-security/eap-method.c                 |   43 +-
 src/wireless-security/eap-method.h                 |   11 +-
 src/wireless-security/helpers.c                    |    6 +-
 src/wireless-security/helpers.h                    |    3 +-
 src/wireless-security/wireless-security.c          |   35 +-
 src/wireless-security/wireless-security.h          |    7 +-
 src/wireless-security/ws-dynamic-wep.c             |   24 +-
 src/wireless-security/ws-dynamic-wep.h             |    2 +-
 src/wireless-security/ws-leap.c                    |   44 +-
 src/wireless-security/ws-leap.h                    |    2 +-
 src/wireless-security/ws-wep-key.c                 |   52 +-
 src/wireless-security/ws-wep-key.h                 |    2 +-
 src/wireless-security/ws-wpa-eap.c                 |   24 +-
 src/wireless-security/ws-wpa-eap.h                 |    2 +-
 src/wireless-security/ws-wpa-psk.c                 |   42 +-
 src/wireless-security/ws-wpa-psk.h                 |    2 +-
 71 files changed, 2426 insertions(+), 1979 deletions(-)
---
diff --git a/configure.ac b/configure.ac
index 504551d..ecb9ad7 100644
--- a/configure.ac
+++ b/configure.ac
@@ -68,11 +68,10 @@ PKG_CHECK_MODULES(GOBJECT, gobject-2.0)
 PKG_CHECK_MODULES(NMA,
 		[dbus-glib-1 >= 0.74
 		 glib-2.0 >= 2.16
-		 NetworkManager >= 0.8.990
-		 libnm-glib >= 0.8.990
-		 libnm-util >= 0.8.990
-		 libnm-glib-vpn >= 0.8.990
-		 libglade-2.0
+		 NetworkManager >= 0.8.2
+		 libnm-glib >= 0.8.2
+		 libnm-util >= 0.8.2
+		 libnm-glib-vpn >= 0.8.2
 		 gmodule-export-2.0
 		 gconf-2.0
 		 gnome-keyring-1
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 59654f4..c8989f5 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -12,18 +12,18 @@ src/applet-device-wired.c
 src/applet-device-wifi.c
 src/applet-dialogs.c
 src/applet.c
-src/applet.glade
+src/applet.ui
 src/applet.h
 src/connection-editor/ce-page.c
-src/connection-editor/ce-page-dsl.glade
-src/connection-editor/ce-page-ip4.glade
-src/connection-editor/ce-page-ip6.glade
-src/connection-editor/ce-page-mobile.glade
-src/connection-editor/ce-page-ppp.glade
-src/connection-editor/ce-page-wired.glade
-src/connection-editor/ce-page-wireless.glade
-src/connection-editor/ce-page-wireless-security.glade
-src/connection-editor/ce-vpn-wizard.glade
+src/connection-editor/ce-page-dsl.ui
+src/connection-editor/ce-page-ip4.ui
+src/connection-editor/ce-page-ip6.ui
+src/connection-editor/ce-page-mobile.ui
+src/connection-editor/ce-page-ppp.ui
+src/connection-editor/ce-page-wired.ui
+src/connection-editor/ce-page-wireless.ui
+src/connection-editor/ce-page-wireless-security.ui
+src/connection-editor/ce-vpn-wizard.ui
 src/connection-editor/ip4-routes-dialog.c
 src/connection-editor/ip6-routes-dialog.c
 src/connection-editor/page-dsl.c
@@ -37,7 +37,7 @@ src/connection-editor/page-wired-security.c
 src/connection-editor/page-wireless.c
 src/connection-editor/page-wireless-security.c
 src/connection-editor/nm-connection-editor.c
-src/connection-editor/nm-connection-editor.glade
+src/connection-editor/nm-connection-editor.ui
 src/connection-editor/nm-connection-list.c
 src/connection-editor/vpn-helpers.c
 src/gnome-bluetooth/bt-widget.c
diff --git a/src/Makefile.am b/src/Makefile.am
index 2da5ee2..5ee3db1 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -7,7 +7,7 @@ nm_applet_CPPFLAGS = \
 	$(NMA_CFLAGS) \
 	$(NOTIFY_CFLAGS) \
 	-DICONDIR=\""$(datadir)/icons"\"						\
-	-DGLADEDIR=\""$(gladedir)"\"							\
+	-DUIDIR=\""$(uidir)"\"							\
 	-DBINDIR=\""$(bindir)"\"								\
 	-DSYSCONFDIR=\""$(sysconfdir)"\"						\
 	-DLIBEXECDIR=\""$(libexecdir)"\" \
@@ -62,11 +62,11 @@ nm_applet_LDADD = \
 	${top_builddir}/src/gconf-helpers/libgconf-helpers.la \
 	${top_builddir}/src/wireless-security/libwireless-security.la
 
-gladedir = $(datadir)/nm-applet
-glade_DATA = applet.glade keyring.png
+uidir = $(datadir)/nm-applet
+ui_DATA = applet.ui keyring.png
 
-CLEANFILES = *.bak *.gladep
+CLEANFILES = *.bak
 
 EXTRA_DIST = 				\
-	$(glade_DATA)
+	$(ui_DATA)
 
diff --git a/src/applet-device-wired.c b/src/applet-device-wired.c
index b1649cd..c1b0173 100644
--- a/src/applet-device-wired.c
+++ b/src/applet-device-wired.c
@@ -399,7 +399,7 @@ pppoe_update_ui (NMConnection *connection, NMPppoeInfo *info)
 }
 
 static NMPppoeInfo *
-pppoe_info_new (GladeXML *xml,
+pppoe_info_new (GtkBuilder *builder,
                 NMApplet *applet,
 				NMANewSecretsRequestedFunc callback,
 				gpointer callback_data,
@@ -410,12 +410,12 @@ pppoe_info_new (GladeXML *xml,
 
 	info = g_new0 (NMPppoeInfo, 1);
 	
-	info->username_entry = GTK_ENTRY (glade_xml_get_widget (xml, "dsl_username"));
+	info->username_entry = GTK_ENTRY (GTK_WIDGET (gtk_builder_get_object (builder, "dsl_username")));
 	g_signal_connect (info->username_entry, "changed", G_CALLBACK (pppoe_verify), info);
 
-	info->service_entry = GTK_ENTRY (glade_xml_get_widget (xml, "dsl_service"));
+	info->service_entry = GTK_ENTRY (GTK_WIDGET (gtk_builder_get_object (builder, "dsl_service")));
 
-	info->password_entry = GTK_ENTRY (glade_xml_get_widget (xml, "dsl_password"));
+	info->password_entry = GTK_ENTRY (GTK_WIDGET (gtk_builder_get_object (builder, "dsl_password")));
 	g_signal_connect (info->password_entry, "changed", G_CALLBACK (pppoe_verify), info);
 
 	info->applet = applet;
@@ -544,12 +544,15 @@ pppoe_get_secrets (NMDevice *device,
 				   NMApplet *applet,
 				   GError **error)
 {
-	GladeXML *xml;
 	NMPppoeInfo *info;
 	GtkWidget *w;
+	GtkBuilder* builder;
 
-	xml = glade_xml_new (GLADEDIR "/ce-page-dsl.glade", "DslPage", NULL);
-	if (!xml) {
+	builder = gtk_builder_new ();
+
+	if (!gtk_builder_add_from_file (builder, UIDIR "/ce-page-dsl.ui", error))
+	{
+		g_warning ("Couldn't load builder file: %s", (*error)->message);
 		g_set_error (error,
 		             NM_SETTINGS_INTERFACE_ERROR,
 		             NM_SETTINGS_INTERFACE_ERROR_INTERNAL_ERROR,
@@ -558,7 +561,7 @@ pppoe_get_secrets (NMDevice *device,
 		return FALSE;
 	}
 
-	info = pppoe_info_new (xml, applet, callback, callback_data, connection, active_connection);
+	info = pppoe_info_new (builder, applet, callback, callback_data, connection, active_connection);
 
 	/* Create the dialog */
 	info->dialog = gtk_dialog_new ();
@@ -570,12 +573,12 @@ pppoe_get_secrets (NMDevice *device,
 	info->ok_button = w;
 
 	gtk_box_pack_start (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (info->dialog))),
-	                    glade_xml_get_widget (xml, "DslPage"),
+	                    GTK_WIDGET (gtk_builder_get_object (builder, "DslPage")),
 	                    TRUE, TRUE, 0);
 
 	pppoe_update_ui (NM_CONNECTION (connection), info);
 
-	w = glade_xml_get_widget (xml, "dsl_show_password");
+	w = GTK_WIDGET (gtk_builder_get_object (builder, "dsl_show_password"));
 	g_signal_connect (G_OBJECT (w), "toggled", G_CALLBACK (show_password_toggled), info);
 
 	g_signal_connect (info->dialog, "response",
@@ -713,7 +716,7 @@ nm_8021x_get_secrets (NMDevice *device,
 	GtkWidget *dialog;
 	NM8021xInfo *info;
 
-	dialog = nma_wired_dialog_new (applet->glade_file,
+	dialog = nma_wired_dialog_new (applet->ui_file,
 								   applet->nm_client,
 								   g_object_ref (connection),
 								   device);
diff --git a/src/applet-dialogs.c b/src/applet-dialogs.c
index 67f0c86..e9d7d0d 100644
--- a/src/applet-dialogs.c
+++ b/src/applet-dialogs.c
@@ -17,7 +17,7 @@
  * with this program; if not, write to the Free Software Foundation, Inc.,
  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
  *
- * (C) Copyright 2008 Red Hat, Inc.
+ * (C) Copyright 2008 - 2010 Red Hat, Inc.
  */
 
 #include <netinet/in.h>
@@ -39,7 +39,6 @@
 #include <nm-utils.h>
 
 #include <gtk/gtk.h>
-#include <glade/glade.h>
 #include <glib/gi18n.h>
 
 #include "applet-dialogs.h"
@@ -506,7 +505,7 @@ info_dialog_update (NMApplet *applet)
 	int i;
 	int pages = 0;
 
-	notebook = GTK_NOTEBOOK (glade_xml_get_widget (applet->info_dialog_xml, "info_notebook"));
+	notebook = GTK_NOTEBOOK (GTK_WIDGET (gtk_builder_get_object (applet->info_dialog_ui, "info_notebook")));
 
 	/* Remove old pages */
 	for (i = gtk_notebook_get_n_pages (notebook); i > 0; i--)
@@ -548,7 +547,7 @@ info_dialog_update (NMApplet *applet)
 		return NULL;
 	}
 
-	return glade_xml_get_widget (applet->info_dialog_xml, "info_dialog");
+	return GTK_WIDGET (gtk_builder_get_object (applet->info_dialog_ui, "info_dialog"));
 }
 
 void
@@ -691,16 +690,16 @@ static void
 mpd_entry_changed (GtkWidget *widget, gpointer user_data)
 {
 	GtkWidget *dialog = GTK_WIDGET (user_data);
-	GladeXML *xml = g_object_get_data (G_OBJECT (dialog), "xml");
+	GtkBuilder *builder = g_object_get_data (G_OBJECT (dialog), "builder");
 	GtkWidget *entry;
 	guint32 minlen;
 	gboolean valid = FALSE;
 	const char *text, *text2 = NULL, *text3 = NULL;
 	gboolean match23;
 
-	g_return_if_fail (xml != NULL);
+	g_return_if_fail (builder != NULL);
 
-	entry = glade_xml_get_widget (xml, "code1_entry");
+	entry = GTK_WIDGET (gtk_builder_get_object (builder, "code1_entry"));
 	if (g_object_get_data (G_OBJECT (entry), "active")) {
 		minlen = GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (entry), "minlen"));
 		text = gtk_entry_get_text (GTK_ENTRY (entry));
@@ -708,7 +707,7 @@ mpd_entry_changed (GtkWidget *widget, gpointer user_data)
 			goto done;
 	}
 
-	entry = glade_xml_get_widget (xml, "code2_entry");
+	entry = GTK_WIDGET (gtk_builder_get_object (builder, "code2_entry"));
 	if (g_object_get_data (G_OBJECT (entry), "active")) {
 		minlen = GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (entry), "minlen"));
 		text2 = gtk_entry_get_text (GTK_ENTRY (entry));
@@ -716,7 +715,7 @@ mpd_entry_changed (GtkWidget *widget, gpointer user_data)
 			goto done;
 	}
 
-	entry = glade_xml_get_widget (xml, "code3_entry");
+	entry = GTK_WIDGET (gtk_builder_get_object (builder, "code3_entry"));
 	if (g_object_get_data (G_OBJECT (entry), "active")) {
 		minlen = GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (entry), "minlen"));
 		text3 = gtk_entry_get_text (GTK_ENTRY (entry));
@@ -735,10 +734,10 @@ mpd_entry_changed (GtkWidget *widget, gpointer user_data)
 
 done:
 	/* Clear any error text in the progress label now that the user has changed something */
-	widget = glade_xml_get_widget (xml, "progress_label");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "progress_label"));
 	gtk_label_set_text (GTK_LABEL (widget), "");
 
-	widget = glade_xml_get_widget (xml, "unlock_button");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "unlock_button"));
 	g_warn_if_fail (widget != NULL);
 	gtk_widget_set_sensitive (widget, valid);
 	if (valid)
@@ -764,18 +763,18 @@ show_toggled_cb (GtkWidget *button, gpointer user_data)
 	GtkWidget *dialog = GTK_WIDGET (user_data);
 	gboolean show;
 	GtkWidget *widget;
-	GladeXML *xml;
+	GtkBuilder *builder;
 
-	xml = g_object_get_data (G_OBJECT (dialog), "xml");
-	g_return_if_fail (xml != NULL);
+	builder = g_object_get_data (G_OBJECT (dialog), "builder");
+	g_return_if_fail (builder != NULL);
 
 	show = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (button));
 
-	widget = glade_xml_get_widget (xml, "code1_entry");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "code1_entry"));
 	gtk_entry_set_visibility (GTK_ENTRY (widget), show);
-	widget = glade_xml_get_widget (xml, "code2_entry");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "code2_entry"));
 	gtk_entry_set_visibility (GTK_ENTRY (widget), show);
-	widget = glade_xml_get_widget (xml, "code3_entry");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "code3_entry"));
 	gtk_entry_set_visibility (GTK_ENTRY (widget), show);
 }
 
@@ -785,42 +784,46 @@ applet_mobile_pin_dialog_new (const char *title,
                               const char *desc,
                               const char *show_password_label)
 {
-	char *glade_file, *str;
-	GladeXML *xml;
+	char *str;
 	GtkWidget *dialog;
 	GtkWidget *widget;
+	GError *error = NULL;
+	GtkBuilder *builder;
 
 	g_return_val_if_fail (title != NULL, NULL);
 	g_return_val_if_fail (header != NULL, NULL);
 	g_return_val_if_fail (desc != NULL, NULL);
 	g_return_val_if_fail (show_password_label != NULL, NULL);
 
-	glade_file = g_build_filename (GLADEDIR, "applet.glade", NULL);
-	g_return_val_if_fail (glade_file != NULL, NULL);
-	xml = glade_xml_new (glade_file, "unlock_dialog", NULL);
-	g_free (glade_file);
-	g_return_val_if_fail (xml != NULL, NULL);
+	builder = gtk_builder_new ();
+
+	if (!gtk_builder_add_from_file (builder, "applet.ui", &error)) {
+		g_warning ("Couldn't load builder file: %s", error->message);
+		g_error_free (error);
+		g_object_unref (builder);
+		return NULL;
+	}
 
-	dialog = glade_xml_get_widget (xml, "unlock_dialog");
+	dialog = GTK_WIDGET (gtk_builder_get_object (builder, "unlock_dialog"));
 	if (!dialog) {
-		g_object_unref (xml);
+		g_object_unref (builder);
 		g_return_val_if_fail (dialog != NULL, NULL);
 	}
 
-	g_object_set_data_full (G_OBJECT (dialog), "xml", xml, (GDestroyNotify) g_object_unref);
+	g_object_set_data_full (G_OBJECT (dialog), "builder", builder, (GDestroyNotify) g_object_unref);
 
 	gtk_window_set_title (GTK_WINDOW (dialog), title);
 
-	widget = glade_xml_get_widget (xml, "header_label");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "header_label"));
 	str = g_strdup_printf ("<span size=\"larger\" weight=\"bold\">%s</span>", header);
 	gtk_label_set_use_markup (GTK_LABEL (widget), TRUE);
 	gtk_label_set_markup (GTK_LABEL (widget), str);
 	g_free (str);
 
-	widget = glade_xml_get_widget (xml, "desc_label");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "desc_label"));
 	gtk_label_set_text (GTK_LABEL (widget), desc);
 
-	widget = glade_xml_get_widget (xml, "show_password_checkbutton");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "show_password_checkbutton"));
 	gtk_button_set_label (GTK_BUTTON (widget), show_password_label);
 	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), FALSE);
 	g_signal_connect (widget, "toggled", G_CALLBACK (show_toggled_cb), dialog);
@@ -836,31 +839,31 @@ applet_mobile_pin_dialog_new (const char *title,
 void
 applet_mobile_pin_dialog_present (GtkWidget *dialog, gboolean now)
 {
-	GladeXML *xml;
+	GtkBuilder *builder;
 	GtkWidget *widget;
 
 	g_return_if_fail (dialog != NULL);
-	xml = g_object_get_data (G_OBJECT (dialog), "xml");
-	g_return_if_fail (xml != NULL);
+	builder = g_object_get_data (G_OBJECT (dialog), "builder");
+	g_return_if_fail (builder != NULL);
 
 	gtk_widget_show_all (dialog);
 
-	widget = glade_xml_get_widget (xml, "progress_hbox");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "progress_hbox"));
 	gtk_widget_hide (widget);
 
 	/* Hide inactive entries */
 
-	widget = glade_xml_get_widget (xml, "code2_entry");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "code2_entry"));
 	if (!g_object_get_data (G_OBJECT (widget), "active")) {
 		gtk_widget_hide (widget);
-		widget = glade_xml_get_widget (xml, "code2_label");
+		widget = GTK_WIDGET (gtk_builder_get_object (builder, "code2_label"));
 		gtk_widget_hide (widget);
 	}
 
-	widget = glade_xml_get_widget (xml, "code3_entry");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "code3_entry"));
 	if (!g_object_get_data (G_OBJECT (widget), "active")) {
 		gtk_widget_hide (widget);
-		widget = glade_xml_get_widget (xml, "code3_label");
+		widget = GTK_WIDGET (gtk_builder_get_object (builder, "code3_label"));
 		gtk_widget_hide (widget);
 	}
 
@@ -914,19 +917,19 @@ mpd_set_entry (GtkWidget *dialog,
                guint32 minlen,
                guint32 maxlen)
 {
-	GladeXML *xml;
+	GtkBuilder *builder;
 	GtkWidget *widget;
 	gboolean entry2_active = FALSE;
 	gboolean entry3_active = FALSE;
 
 	g_return_if_fail (dialog != NULL);
-	xml = g_object_get_data (G_OBJECT (dialog), "xml");
-	g_return_if_fail (xml != NULL);
+	builder = g_object_get_data (G_OBJECT (dialog), "builder");
+	g_return_if_fail (builder != NULL);
 
-	widget = glade_xml_get_widget (xml, label_name);
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, label_name));
 	gtk_label_set_text (GTK_LABEL (widget), label);
 
-	widget = glade_xml_get_widget (xml, entry_name);
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, entry_name));
 	g_signal_connect (widget, "changed", G_CALLBACK (mpd_entry_changed), dialog);
 	g_signal_connect (widget, "insert-text", G_CALLBACK (mpd_entry_filter), NULL);
 
@@ -938,12 +941,12 @@ mpd_set_entry (GtkWidget *dialog,
 	g_object_set_data (G_OBJECT (widget), "active", GUINT_TO_POINTER (1));
 
 	/* Make a single-entry dialog look better */
-	widget = glade_xml_get_widget (xml, "code2_entry");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "code2_entry"));
 	entry2_active = GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (widget), "active"));
-	widget = glade_xml_get_widget (xml, "code3_entry");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "code3_entry"));
 	entry3_active = GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (widget), "active"));
 
-	widget = glade_xml_get_widget (xml, "table14");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "table14"));
 	if (entry2_active || entry3_active)
 		gtk_table_set_row_spacings (GTK_TABLE (widget), 6);
 	else
@@ -989,14 +992,14 @@ void applet_mobile_pin_dialog_match_23 (GtkWidget *dialog, gboolean match)
 static const char *
 mpd_get_entry (GtkWidget *dialog, const char *entry_name)
 {
-	GladeXML *xml;
+	GtkBuilder *builder;
 	GtkWidget *widget;
 
 	g_return_val_if_fail (dialog != NULL, NULL);
-	xml = g_object_get_data (G_OBJECT (dialog), "xml");
-	g_return_val_if_fail (xml != NULL, NULL);
+	builder = g_object_get_data (G_OBJECT (dialog), "builder");
+	g_return_val_if_fail (builder != NULL, NULL);
 
-	widget = glade_xml_get_widget (xml, entry_name);
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, entry_name));
 	return gtk_entry_get_text (GTK_ENTRY (widget));
 }
 
@@ -1021,56 +1024,56 @@ applet_mobile_pin_dialog_get_entry3 (GtkWidget *dialog)
 void
 applet_mobile_pin_dialog_start_spinner (GtkWidget *dialog, const char *text)
 {
-	GladeXML *xml;
+	GtkBuilder *builder;
 	GtkWidget *spinner, *widget, *hbox, *align;
 
 	g_return_if_fail (dialog != NULL);
 	g_return_if_fail (text != NULL);
 
-	xml = g_object_get_data (G_OBJECT (dialog), "xml");
-	g_return_if_fail (xml != NULL);
+	builder = g_object_get_data (G_OBJECT (dialog), "builder");
+	g_return_if_fail (builder != NULL);
 
 	spinner = gtk_spinner_new ();
 	g_return_if_fail (spinner != NULL);
 	g_object_set_data (G_OBJECT (dialog), "spinner", spinner);
 
-	align = glade_xml_get_widget (xml, "spinner_alignment");
+	align = GTK_WIDGET (gtk_builder_get_object (builder, "spinner_alignment"));
 	gtk_container_add (GTK_CONTAINER (align), spinner);
 	gtk_spinner_start (GTK_SPINNER (spinner));
 
-	widget = glade_xml_get_widget (xml, "progress_label");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "progress_label"));
 	gtk_label_set_text (GTK_LABEL (widget), text);
 	gtk_widget_show (widget);
 
-	hbox = glade_xml_get_widget (xml, "progress_hbox");
+	hbox = GTK_WIDGET (gtk_builder_get_object (builder, "progress_hbox"));
 	gtk_widget_show_all (hbox);
 
 	/* Desensitize everything while spinning */
-	widget = glade_xml_get_widget (xml, "code1_entry");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "code1_entry"));
 	gtk_widget_set_sensitive (widget, FALSE);
-	widget = glade_xml_get_widget (xml, "code2_entry");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "code2_entry"));
 	gtk_widget_set_sensitive (widget, FALSE);
-	widget = glade_xml_get_widget (xml, "code3_entry");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "code3_entry"));
 	gtk_widget_set_sensitive (widget, FALSE);
-	widget = glade_xml_get_widget (xml, "unlock_button");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "unlock_button"));
 	gtk_widget_set_sensitive (widget, FALSE);
-	widget = glade_xml_get_widget (xml, "unlock_cancel_button");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "unlock_cancel_button"));
 	gtk_widget_set_sensitive (widget, FALSE);
 
-	widget = glade_xml_get_widget (xml, "show_password_checkbutton");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "show_password_checkbutton"));
 	gtk_widget_set_sensitive (widget, FALSE);
 }
 
 void
 applet_mobile_pin_dialog_stop_spinner (GtkWidget *dialog, const char *text)
 {
-	GladeXML *xml;
+	GtkBuilder *builder;
 	GtkWidget *spinner, *widget, *align;
 
 	g_return_if_fail (dialog != NULL);
 
-	xml = g_object_get_data (G_OBJECT (dialog), "xml");
-	g_return_if_fail (xml != NULL);
+	builder = g_object_get_data (G_OBJECT (dialog), "builder");
+	g_return_if_fail (builder != NULL);
 
 	spinner = g_object_get_data (G_OBJECT (dialog), "spinner");
 	g_return_if_fail (spinner != NULL);
@@ -1078,10 +1081,10 @@ applet_mobile_pin_dialog_stop_spinner (GtkWidget *dialog, const char *text)
 	g_object_set_data (G_OBJECT (dialog), "spinner", NULL);
 
 	/* Remove it from the alignment */
-	align = glade_xml_get_widget (xml, "spinner_alignment");
+	align = GTK_WIDGET (gtk_builder_get_object (builder, "spinner_alignment"));
 	gtk_container_remove (GTK_CONTAINER (align), spinner);
 
-	widget = glade_xml_get_widget (xml, "progress_label");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "progress_label"));
 	if (text) {
 		gtk_label_set_text (GTK_LABEL (widget), text);
 		gtk_widget_show (widget);
@@ -1089,18 +1092,18 @@ applet_mobile_pin_dialog_stop_spinner (GtkWidget *dialog, const char *text)
 		gtk_widget_hide (widget);
 
 	/* Resensitize stuff */
-	widget = glade_xml_get_widget (xml, "code1_entry");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "code1_entry"));
 	gtk_widget_set_sensitive (widget, TRUE);
-	widget = glade_xml_get_widget (xml, "code2_entry");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "code2_entry"));
 	gtk_widget_set_sensitive (widget, TRUE);
-	widget = glade_xml_get_widget (xml, "code3_entry");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "code3_entry"));
 	gtk_widget_set_sensitive (widget, TRUE);
-	widget = glade_xml_get_widget (xml, "unlock_button");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "unlock_button"));
 	gtk_widget_set_sensitive (widget, TRUE);
-	widget = glade_xml_get_widget (xml, "unlock_cancel_button");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "unlock_cancel_button"));
 	gtk_widget_set_sensitive (widget, TRUE);
 
-	widget = glade_xml_get_widget (xml, "show_password_checkbutton");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "show_password_checkbutton"));
 	gtk_widget_set_sensitive (widget, TRUE);
 }
 
diff --git a/src/applet.c b/src/applet.c
index 15a9c98..4e0ae77 100644
--- a/src/applet.c
+++ b/src/applet.c
@@ -53,7 +53,6 @@
 #include <nm-active-connection.h>
 #include <nm-setting-wireless.h>
 
-#include <glade/glade.h>
 #include <gconf/gconf-client.h>
 #include <gnome-keyring.h>
 #include <libnotify/notify.h>
@@ -3005,23 +3004,29 @@ constructor (GType type,
 {
 	NMApplet *applet;
 	AppletDBusManager *dbus_mgr;
+	GError* error = NULL;
 
 	applet = NM_APPLET (G_OBJECT_CLASS (nma_parent_class)->constructor (type, n_props, construct_props));
 
 	g_set_application_name (_("NetworkManager Applet"));
 	gtk_window_set_default_icon_name (GTK_STOCK_NETWORK);
 
-	applet->glade_file = g_build_filename (GLADEDIR, "applet.glade", NULL);
-	if (!applet->glade_file || !g_file_test (applet->glade_file, G_FILE_TEST_IS_REGULAR)) {
+	applet->ui_file = g_build_filename (UIDIR, "applet.ui", NULL);
+	if (!applet->ui_file || !g_file_test (applet->ui_file, G_FILE_TEST_IS_REGULAR)) {
 		GtkWidget *dialog;
-		dialog = applet_warning_dialog_show (_("The NetworkManager Applet could not find some required resources (the glade file was not found)."));
+		dialog = applet_warning_dialog_show (_("The NetworkManager Applet could not find some required resources (the .ui file was not found)."));
 		gtk_dialog_run (GTK_DIALOG (dialog));
 		goto error;
 	}
 
-	applet->info_dialog_xml = glade_xml_new (applet->glade_file, "info_dialog", NULL);
-	if (!applet->info_dialog_xml)
+	applet->info_dialog_ui = gtk_builder_new ();
+
+	if (!gtk_builder_add_from_file (applet->info_dialog_ui, applet->ui_file, &error))
+	{
+		g_warning ("Couldn't load builder file: %s", error->message);
+		g_error_free (error);
 		goto error;
+	}
 
 	applet->gconf_client = gconf_client_get_default ();
 	if (!applet->gconf_client)
@@ -3130,9 +3135,9 @@ static void finalize (GObject *object)
 		g_object_unref (applet->notification);
 	}
 
-	g_free (applet->glade_file);
-	if (applet->info_dialog_xml)
-		g_object_unref (applet->info_dialog_xml);
+	g_free (applet->ui_file);
+	if (applet->info_dialog_ui)
+		g_object_unref (applet->info_dialog_ui);
 
 	if (applet->gconf_client) {
 		gconf_client_remove_dir (applet->gconf_client,
diff --git a/src/applet.h b/src/applet.h
index 3270123..f300650 100644
--- a/src/applet.h
+++ b/src/applet.h
@@ -32,7 +32,6 @@
 #include <gdk/gdkx.h>
 
 #include <gconf/gconf-client.h>
-#include <glade/glade.h>
 #include <dbus/dbus.h>
 #include <dbus/dbus-glib.h>
 #include <net/ethernet.h>
@@ -89,7 +88,7 @@ typedef struct
 	NMAGConfSettings *gconf_settings;
 
 	GConfClient *	gconf_client;
-	char	*		glade_file;
+	char	*		ui_file;
 
 	guint update_timestamps_id;
 
@@ -164,7 +163,7 @@ typedef struct
 	GtkWidget *		info_menu_item;
 	GtkWidget *		connections_menu_item;
 
-	GladeXML *		info_dialog_xml;
+	GtkBuilder *	info_dialog_ui;
 	NotifyNotification*	notification;
 	gboolean        notify_actions;
 } NMApplet;
diff --git a/src/applet.glade b/src/applet.ui
similarity index 76%
rename from src/applet.glade
rename to src/applet.ui
index 5d1763d..d06fb77 100644
--- a/src/applet.glade
+++ b/src/applet.ui
@@ -1,8 +1,116 @@
 <?xml version="1.0"?>
-<glade-interface>
+<interface>
+  <object class="GtkListStore" id="model1">
+    <columns>
+      <column type="gchararray"/>
+    </columns>
+    <data>
+      <row>
+        <col id="0" translatable="yes"> </col>
+      </row>
+    </data>
+  </object>
+  <object class="GtkListStore" id="model2">
+    <columns>
+      <column type="gchararray"/>
+    </columns>
+    <data>
+      <row>
+        <col id="0" translatable="yes"> </col>
+      </row>
+    </data>
+  </object>
+  <object class="GtkListStore" id="model3">
+    <columns>
+      <column type="gchararray"/>
+    </columns>
+    <data>
+      <row>
+        <col id="0" translatable="yes">Open System</col>
+      </row>
+      <row>
+        <col id="0" translatable="yes">Shared Key</col>
+      </row>
+    </data>
+  </object>
+  <object class="GtkListStore" id="model4">
+    <columns>
+      <column type="gchararray"/>
+    </columns>
+    <data>
+      <row>
+        <col id="0" translatable="yes">1 (Default)</col>
+      </row>
+      <row>
+        <col id="0" translatable="yes">2</col>
+      </row>
+      <row>
+        <col id="0" translatable="yes">3</col>
+      </row>
+      <row>
+        <col id="0" translatable="yes">4</col>
+      </row>
+    </data>
+  </object>
+  <object class="GtkListStore" id="model5">
+    <columns>
+      <column type="gchararray"/>
+    </columns>
+    <data>
+      <row>
+        <col id="0" translatable="yes"> </col>
+      </row>
+    </data>
+  </object>
+  <object class="GtkListStore" id="model6">
+    <columns>
+      <column type="gchararray"/>
+    </columns>
+    <data>
+      <row>
+        <col id="0" translatable="yes"> </col>
+      </row>
+    </data>
+  </object>
+  <object class="GtkListStore" id="model7">
+    <columns>
+      <column type="gchararray"/>
+    </columns>
+    <data>
+      <row>
+        <col id="0" translatable="yes"> </col>
+      </row>
+    </data>
+  </object>
+  <object class="GtkListStore" id="model8">
+    <columns>
+      <column type="gchararray"/>
+    </columns>
+    <data>
+      <row>
+        <col id="0" translatable="yes"> </col>
+      </row>
+    </data>
+  </object>
+  <object class="GtkListStore" id="model9">
+    <columns>
+      <column type="gchararray"/>
+    </columns>
+    <data>
+      <row>
+        <col id="0" translatable="yes">Automatic</col>
+      </row>
+      <row>
+        <col id="0" translatable="yes">Version 0</col>
+      </row>
+      <row>
+        <col id="0" translatable="yes">Version 1</col>
+      </row>
+    </data>
+  </object>
   <!-- interface-requires gtk+ 2.6 -->
   <!-- interface-naming-policy toplevel-contextual -->
-  <widget class="GtkDialog" id="wireless_dialog">
+  <object class="GtkDialog" id="wireless_dialog">
     <property name="border_width">5</property>
     <property name="title" translatable="yes">Other Wireless Network...</property>
     <property name="resizable">False</property>
@@ -13,58 +121,58 @@
     <property name="type_hint">dialog</property>
     <property name="has_separator">False</property>
     <child internal-child="vbox">
-      <widget class="GtkVBox" id="dialog-vbox1">
+      <object class="GtkVBox" id="dialog-vbox1">
         <property name="visible">True</property>
         <property name="orientation">vertical</property>
         <property name="spacing">2</property>
         <child>
-          <widget class="GtkHBox" id="hbox1">
+          <object class="GtkHBox" id="hbox1">
             <property name="visible">True</property>
             <property name="border_width">5</property>
             <property name="spacing">12</property>
             <child>
-              <widget class="GtkImage" id="image1">
+              <object class="GtkImage" id="image1">
                 <property name="visible">True</property>
                 <property name="yalign">0</property>
                 <property name="icon_name">network-wireless</property>
                 <property name="icon-size">6</property>
-              </widget>
+              </object>
               <packing>
                 <property name="expand">False</property>
                 <property name="position">0</property>
               </packing>
             </child>
             <child>
-              <widget class="GtkVBox" id="vbox1">
+              <object class="GtkVBox" id="vbox1">
                 <property name="visible">True</property>
                 <property name="orientation">vertical</property>
                 <property name="spacing">6</property>
                 <child>
-                  <widget class="GtkLabel" id="caption_label">
+                  <object class="GtkLabel" id="caption_label">
                     <property name="visible">True</property>
                     <property name="xalign">0</property>
                     <property name="use_markup">True</property>
                     <property name="wrap">True</property>
-                  </widget>
+                  </object>
                   <packing>
                     <property name="position">0</property>
                   </packing>
                 </child>
                 <child>
-                  <widget class="GtkTable" id="table1">
+                  <object class="GtkTable" id="table1">
                     <property name="visible">True</property>
                     <property name="n_rows">5</property>
                     <property name="n_columns">2</property>
                     <property name="column_spacing">12</property>
                     <property name="row_spacing">6</property>
                     <child>
-                      <widget class="GtkVBox" id="security_vbox">
+                      <object class="GtkVBox" id="security_vbox">
                         <property name="visible">True</property>
                         <property name="orientation">vertical</property>
                         <child>
                           <placeholder/>
                         </child>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="right_attach">2</property>
                         <property name="top_attach">4</property>
@@ -73,25 +181,31 @@
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkLabel" id="security_combo_label">
+                      <object class="GtkLabel" id="security_combo_label">
                         <property name="visible">True</property>
                         <property name="xalign">0</property>
                         <property name="label" translatable="yes">_Wireless security:</property>
                         <property name="use_underline">True</property>
                         <property name="mnemonic_widget">security_combo</property>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="top_attach">3</property>
                         <property name="bottom_attach">4</property>
                         <property name="x_options">GTK_FILL</property>
-                        <property name="y_options"></property>
+                        <property name="y_options"/>
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkComboBox" id="security_combo">
+                      <object class="GtkComboBox" id="security_combo">
                         <property name="visible">True</property>
-                        <property name="items" translatable="yes"> </property>
-                      </widget>
+                        <property name="model">model1</property>
+                        <child>
+                          <object class="GtkCellRendererText" id="renderer1"/>
+                          <attributes>
+                            <attribute name="text">0</attribute>
+                          </attributes>
+                        </child>
+                      </object>
                       <packing>
                         <property name="left_attach">1</property>
                         <property name="right_attach">2</property>
@@ -102,54 +216,53 @@
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkLabel" id="network_name_label">
+                      <object class="GtkLabel" id="network_name_label">
                         <property name="visible">True</property>
                         <property name="xalign">0</property>
                         <property name="label" translatable="yes">_Network name:</property>
                         <property name="use_underline">True</property>
                         <property name="mnemonic_widget">network_name_entry</property>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="top_attach">2</property>
                         <property name="bottom_attach">3</property>
                         <property name="x_options">GTK_FILL</property>
-                        <property name="y_options"></property>
+                        <property name="y_options"/>
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkEntry" id="network_name_entry">
+                      <object class="GtkEntry" id="network_name_entry">
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
                         <property name="activates_default">True</property>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="left_attach">1</property>
                         <property name="right_attach">2</property>
                         <property name="top_attach">2</property>
                         <property name="bottom_attach">3</property>
-                        <property name="y_options"></property>
+                        <property name="y_options"/>
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkLabel" id="connection_label">
+                      <object class="GtkLabel" id="connection_label">
                         <property name="visible">True</property>
                         <property name="xalign">0</property>
                         <property name="label" translatable="yes">Co_nnection:</property>
                         <property name="use_underline">True</property>
                         <property name="mnemonic_widget">connection_combo</property>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="top_attach">1</property>
                         <property name="bottom_attach">2</property>
                         <property name="x_options">GTK_FILL</property>
-                        <property name="y_options"></property>
+                        <property name="y_options"/>
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkComboBox" id="connection_combo">
+                      <object class="GtkComboBox" id="connection_combo">
                         <property name="visible">True</property>
-                        <property name="items" translatable="yes"></property>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="left_attach">1</property>
                         <property name="right_attach">2</property>
@@ -160,23 +273,29 @@
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkLabel" id="device_label">
+                      <object class="GtkLabel" id="device_label">
                         <property name="visible">True</property>
                         <property name="xalign">0</property>
                         <property name="label" translatable="yes">Wireless _adapter:</property>
                         <property name="use_underline">True</property>
                         <property name="mnemonic_widget">device_combo</property>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="x_options">GTK_FILL</property>
-                        <property name="y_options"></property>
+                        <property name="y_options"/>
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkComboBox" id="device_combo">
+                      <object class="GtkComboBox" id="device_combo">
                         <property name="visible">True</property>
-                        <property name="items" translatable="yes"> </property>
-                      </widget>
+                        <property name="model">model2</property>
+                        <child>
+                          <object class="GtkCellRendererText" id="renderer2"/>
+                          <attributes>
+                            <attribute name="text">0</attribute>
+                          </attributes>
+                        </child>
+                      </object>
                       <packing>
                         <property name="left_attach">1</property>
                         <property name="right_attach">2</property>
@@ -184,35 +303,34 @@
                         <property name="y_options">GTK_FILL</property>
                       </packing>
                     </child>
-                  </widget>
+                  </object>
                   <packing>
                     <property name="position">1</property>
                   </packing>
                 </child>
-              </widget>
+              </object>
               <packing>
                 <property name="position">1</property>
               </packing>
             </child>
-          </widget>
+          </object>
           <packing>
             <property name="position">1</property>
           </packing>
         </child>
         <child internal-child="action_area">
-          <widget class="GtkHButtonBox" id="dialog-action_area1">
+          <object class="GtkHButtonBox" id="dialog-action_area1">
             <property name="visible">True</property>
             <property name="layout_style">end</property>
             <child>
-              <widget class="GtkButton" id="cancel_button">
+              <object class="GtkButton" id="cancel_button">
                 <property name="label">gtk-cancel</property>
-                <property name="response_id">-6</property>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="can_default">True</property>
                 <property name="receives_default">False</property>
                 <property name="use_stock">True</property>
-              </widget>
+              </object>
               <packing>
                 <property name="expand">False</property>
                 <property name="fill">False</property>
@@ -220,27 +338,26 @@
               </packing>
             </child>
             <child>
-              <widget class="GtkButton" id="ok_button">
-                <property name="response_id">-5</property>
+              <object class="GtkButton" id="ok_button">
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="can_default">True</property>
                 <property name="has_default">True</property>
                 <property name="receives_default">False</property>
                 <child>
-                  <widget class="GtkAlignment" id="alignment4">
+                  <object class="GtkAlignment" id="alignment4">
                     <property name="visible">True</property>
                     <property name="xscale">0</property>
                     <property name="yscale">0</property>
                     <child>
-                      <widget class="GtkHBox" id="hbox6">
+                      <object class="GtkHBox" id="hbox6">
                         <property name="visible">True</property>
                         <property name="spacing">2</property>
                         <child>
-                          <widget class="GtkImage" id="image5">
+                          <object class="GtkImage" id="image5">
                             <property name="visible">True</property>
                             <property name="stock">gtk-connect</property>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="expand">False</property>
                             <property name="fill">False</property>
@@ -248,39 +365,43 @@
                           </packing>
                         </child>
                         <child>
-                          <widget class="GtkLabel" id="label67">
+                          <object class="GtkLabel" id="label67">
                             <property name="visible">True</property>
                             <property name="label" translatable="yes">C_onnect</property>
                             <property name="use_underline">True</property>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="expand">False</property>
                             <property name="fill">False</property>
                             <property name="position">1</property>
                           </packing>
                         </child>
-                      </widget>
+                      </object>
                     </child>
-                  </widget>
+                  </object>
                 </child>
-              </widget>
+              </object>
               <packing>
                 <property name="expand">False</property>
                 <property name="fill">False</property>
                 <property name="position">1</property>
               </packing>
             </child>
-          </widget>
+          </object>
           <packing>
             <property name="expand">False</property>
             <property name="pack_type">end</property>
             <property name="position">0</property>
           </packing>
         </child>
-      </widget>
+      </object>
     </child>
-  </widget>
-  <widget class="GtkDialog" id="info_dialog">
+    <action-widgets>
+      <action-widget response="-6">cancel_button</action-widget>
+      <action-widget response="-5">ok_button</action-widget>
+    </action-widgets>
+  </object>
+  <object class="GtkDialog" id="info_dialog">
     <property name="border_width">5</property>
     <property name="title" translatable="yes">Connection Information</property>
     <property name="resizable">False</property>
@@ -288,26 +409,26 @@
     <property name="type_hint">dialog</property>
     <property name="has_separator">False</property>
     <child internal-child="vbox">
-      <widget class="GtkVBox" id="dialog-vbox1">
+      <object class="GtkVBox" id="dialog-vbox3">
         <property name="visible">True</property>
         <property name="orientation">vertical</property>
         <property name="spacing">2</property>
         <child>
-          <widget class="GtkVBox" id="vbox1">
+          <object class="GtkVBox" id="vbox4">
             <property name="visible">True</property>
             <property name="orientation">vertical</property>
             <child>
-              <widget class="GtkHBox" id="hbox2">
+              <object class="GtkHBox" id="hbox2">
                 <property name="visible">True</property>
                 <property name="border_width">5</property>
                 <property name="spacing">12</property>
                 <child>
-                  <widget class="GtkImage" id="image6">
+                  <object class="GtkImage" id="image6">
                     <property name="visible">True</property>
                     <property name="yalign">0</property>
                     <property name="stock">gtk-dialog-info</property>
                     <property name="icon-size">6</property>
-                  </widget>
+                  </object>
                   <packing>
                     <property name="expand">False</property>
                     <property name="fill">False</property>
@@ -315,17 +436,17 @@
                   </packing>
                 </child>
                 <child>
-                  <widget class="GtkVBox" id="vbox2">
+                  <object class="GtkVBox" id="vbox2">
                     <property name="visible">True</property>
                     <property name="orientation">vertical</property>
                     <property name="spacing">6</property>
                     <child>
-                      <widget class="GtkLabel" id="label68">
+                      <object class="GtkLabel" id="label68">
                         <property name="visible">True</property>
                         <property name="xalign">0</property>
                         <property name="label" translatable="yes">&lt;span size="larger" weight="bold"&gt;Active Network Connections&lt;/span&gt;</property>
                         <property name="use_markup">True</property>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="expand">False</property>
                         <property name="fill">False</property>
@@ -333,51 +454,49 @@
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkNotebook" id="info_notebook">
+                      <object class="GtkNotebook" id="info_notebook">
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
                         <child>
-                          <widget class="GtkLabel" id="label69">
+                          <object class="GtkLabel" id="label69">
                             <property name="visible">True</property>
-                          </widget>
+                          </object>
                         </child>
-                        <child>
-                          <widget class="GtkLabel" id="label65">
+                        <child type="tab">
+                          <object class="GtkLabel" id="label65">
                             <property name="visible">True</property>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="tab_fill">False</property>
-                            <property name="type">tab</property>
                           </packing>
                         </child>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="position">1</property>
                       </packing>
                     </child>
-                  </widget>
+                  </object>
                   <packing>
                     <property name="position">1</property>
                   </packing>
                 </child>
-              </widget>
+              </object>
               <packing>
                 <property name="position">0</property>
               </packing>
             </child>
-          </widget>
+          </object>
           <packing>
             <property name="position">1</property>
           </packing>
         </child>
         <child internal-child="action_area">
-          <widget class="GtkHButtonBox" id="dialog-action_area1">
+          <object class="GtkHButtonBox" id="dialog-action_area3">
             <property name="visible">True</property>
             <property name="layout_style">end</property>
             <child>
-              <widget class="GtkButton" id="closebutton1">
+              <object class="GtkButton" id="closebutton1">
                 <property name="label">gtk-close</property>
-                <property name="response_id">-7</property>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="has_focus">True</property>
@@ -385,115 +504,123 @@
                 <property name="has_default">True</property>
                 <property name="receives_default">False</property>
                 <property name="use_stock">True</property>
-              </widget>
+              </object>
               <packing>
                 <property name="expand">False</property>
                 <property name="fill">False</property>
                 <property name="position">0</property>
               </packing>
             </child>
-          </widget>
+          </object>
           <packing>
             <property name="expand">False</property>
             <property name="pack_type">end</property>
             <property name="position">0</property>
           </packing>
         </child>
-      </widget>
+      </object>
     </child>
-  </widget>
-  <widget class="GtkWindow" id="wep_key_widget">
-    <property name="visible">True</property>
+    <action-widgets>
+      <action-widget response="-7">closebutton1</action-widget>
+    </action-widgets>
+  </object>
+  <object class="GtkWindow" id="wep_key_widget">
+    <property name="visible">False</property>
     <property name="title">wep_key_widget</property>
     <child>
-      <widget class="GtkNotebook" id="wep_key_notebook">
+      <object class="GtkNotebook" id="wep_key_notebook">
         <property name="visible">True</property>
         <property name="show_tabs">False</property>
         <property name="show_border">False</property>
         <child>
-          <widget class="GtkTable" id="table6">
+          <object class="GtkTable" id="table6">
             <property name="visible">True</property>
             <property name="n_rows">4</property>
             <property name="n_columns">2</property>
             <property name="column_spacing">12</property>
             <property name="row_spacing">6</property>
             <child>
-              <widget class="GtkLabel" id="wep_key_label">
+              <object class="GtkLabel" id="wep_key_label">
                 <property name="visible">True</property>
                 <property name="xalign">0</property>
                 <property name="label" translatable="yes">_Key:</property>
                 <property name="use_underline">True</property>
                 <property name="mnemonic_widget">wep_key_entry</property>
-              </widget>
+              </object>
               <packing>
                 <property name="x_options">GTK_FILL</property>
-                <property name="y_options"></property>
+                <property name="y_options"/>
               </packing>
             </child>
             <child>
-              <widget class="GtkEntry" id="wep_key_entry">
+              <object class="GtkEntry" id="wep_key_entry">
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="visibility">False</property>
                 <property name="activates_default">True</property>
-              </widget>
+              </object>
               <packing>
                 <property name="left_attach">1</property>
                 <property name="right_attach">2</property>
-                <property name="y_options"></property>
+                <property name="y_options"/>
               </packing>
             </child>
             <child>
-              <widget class="GtkLabel" id="label31">
+              <object class="GtkLabel" id="label31">
                 <property name="visible">True</property>
                 <property name="xalign">0</property>
-              </widget>
+              </object>
               <packing>
                 <property name="top_attach">1</property>
                 <property name="bottom_attach">2</property>
                 <property name="x_options">GTK_FILL</property>
-                <property name="y_options"></property>
+                <property name="y_options"/>
               </packing>
             </child>
             <child>
-              <widget class="GtkCheckButton" id="show_checkbutton">
+              <object class="GtkCheckButton" id="show_checkbutton_wep">
                 <property name="label" translatable="yes">Sho_w key</property>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="receives_default">False</property>
                 <property name="use_underline">True</property>
                 <property name="draw_indicator">True</property>
-              </widget>
+              </object>
               <packing>
                 <property name="left_attach">1</property>
                 <property name="right_attach">2</property>
                 <property name="top_attach">1</property>
                 <property name="bottom_attach">2</property>
                 <property name="x_options">GTK_FILL</property>
-                <property name="y_options"></property>
+                <property name="y_options"/>
               </packing>
             </child>
             <child>
-              <widget class="GtkLabel" id="auth_method_label">
+              <object class="GtkLabel" id="auth_method_label">
                 <property name="visible">True</property>
                 <property name="xalign">0</property>
                 <property name="label" translatable="yes">_Authentication:</property>
                 <property name="use_underline">True</property>
                 <property name="mnemonic_widget">auth_method_combo</property>
-              </widget>
+              </object>
               <packing>
                 <property name="top_attach">3</property>
                 <property name="bottom_attach">4</property>
                 <property name="x_options">GTK_FILL</property>
-                <property name="y_options"></property>
+                <property name="y_options"/>
               </packing>
             </child>
             <child>
-              <widget class="GtkComboBox" id="auth_method_combo">
+              <object class="GtkComboBox" id="auth_method_combo">
                 <property name="visible">True</property>
-                <property name="items" translatable="yes">Open System
-Shared Key</property>
-              </widget>
+                <property name="model">model3</property>
+                <child>
+                  <object class="GtkCellRendererText" id="renderer3"/>
+                  <attributes>
+                    <attribute name="text">0</attribute>
+                  </attributes>
+                </child>
+              </object>
               <packing>
                 <property name="left_attach">1</property>
                 <property name="right_attach">2</property>
@@ -504,28 +631,31 @@ Shared Key</property>
               </packing>
             </child>
             <child>
-              <widget class="GtkLabel" id="key_index_label">
+              <object class="GtkLabel" id="key_index_label">
                 <property name="visible">True</property>
                 <property name="xalign">0</property>
                 <property name="label" translatable="yes">WEP inde_x:</property>
                 <property name="use_underline">True</property>
                 <property name="mnemonic_widget">key_index_combo</property>
-              </widget>
+              </object>
               <packing>
                 <property name="top_attach">2</property>
                 <property name="bottom_attach">3</property>
                 <property name="x_options">GTK_FILL</property>
-                <property name="y_options"></property>
+                <property name="y_options"/>
               </packing>
             </child>
             <child>
-              <widget class="GtkComboBox" id="key_index_combo">
+              <object class="GtkComboBox" id="key_index_combo">
                 <property name="visible">True</property>
-                <property name="items" translatable="yes">1 (Default)
-2
-3
-4</property>
-              </widget>
+                <property name="model">model4</property>
+                <child>
+                  <object class="GtkCellRendererText" id="renderer4"/>
+                  <attributes>
+                    <attribute name="text">0</attribute>
+                  </attributes>
+                </child>
+              </object>
               <packing>
                 <property name="left_attach">1</property>
                 <property name="right_attach">2</property>
@@ -535,215 +665,212 @@ Shared Key</property>
                 <property name="y_options">GTK_FILL</property>
               </packing>
             </child>
-          </widget>
+          </object>
         </child>
-        <child>
-          <widget class="GtkLabel" id="label23">
+        <child type="tab">
+          <object class="GtkLabel" id="label23">
             <property name="visible">True</property>
-          </widget>
+          </object>
           <packing>
             <property name="tab_fill">False</property>
-            <property name="type">tab</property>
           </packing>
         </child>
-      </widget>
+      </object>
     </child>
-  </widget>
-  <widget class="GtkWindow" id="leap_widget">
-    <property name="visible">True</property>
+  </object>
+  <object class="GtkWindow" id="leap_widget">
+    <property name="visible">False</property>
     <property name="title">leap_widget</property>
     <child>
-      <widget class="GtkNotebook" id="leap_notebook">
+      <object class="GtkNotebook" id="leap_notebook">
         <property name="visible">True</property>
         <property name="show_tabs">False</property>
         <property name="show_border">False</property>
         <child>
-          <widget class="GtkTable" id="table5">
+          <object class="GtkTable" id="table5">
             <property name="visible">True</property>
             <property name="n_rows">3</property>
             <property name="n_columns">2</property>
             <property name="column_spacing">12</property>
             <property name="row_spacing">6</property>
             <child>
-              <widget class="GtkLabel" id="leap_username_label">
+              <object class="GtkLabel" id="leap_username_label">
                 <property name="visible">True</property>
                 <property name="xalign">0</property>
                 <property name="label" translatable="yes">_Username:</property>
                 <property name="use_underline">True</property>
                 <property name="mnemonic_widget">leap_username_entry</property>
-              </widget>
+              </object>
               <packing>
                 <property name="x_options">GTK_FILL</property>
-                <property name="y_options"></property>
+                <property name="y_options"/>
               </packing>
             </child>
             <child>
-              <widget class="GtkLabel" id="leap_password_label">
+              <object class="GtkLabel" id="leap_password_label">
                 <property name="visible">True</property>
                 <property name="xalign">0</property>
                 <property name="label" translatable="yes">_Password:</property>
                 <property name="use_underline">True</property>
                 <property name="mnemonic_widget">leap_password_entry</property>
-              </widget>
+              </object>
               <packing>
                 <property name="top_attach">1</property>
                 <property name="bottom_attach">2</property>
                 <property name="x_options">GTK_FILL</property>
-                <property name="y_options"></property>
+                <property name="y_options"/>
               </packing>
             </child>
             <child>
-              <widget class="GtkEntry" id="leap_password_entry">
+              <object class="GtkEntry" id="leap_password_entry">
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="visibility">False</property>
-              </widget>
+              </object>
               <packing>
                 <property name="left_attach">1</property>
                 <property name="right_attach">2</property>
                 <property name="top_attach">1</property>
                 <property name="bottom_attach">2</property>
-                <property name="y_options"></property>
+                <property name="y_options"/>
               </packing>
             </child>
             <child>
-              <widget class="GtkCheckButton" id="show_checkbutton">
+              <object class="GtkCheckButton" id="show_checkbutton_leap">
                 <property name="label" translatable="yes">Sho_w password</property>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="receives_default">False</property>
                 <property name="use_underline">True</property>
                 <property name="draw_indicator">True</property>
-              </widget>
+              </object>
               <packing>
                 <property name="left_attach">1</property>
                 <property name="right_attach">2</property>
                 <property name="top_attach">2</property>
                 <property name="bottom_attach">3</property>
                 <property name="x_options">GTK_FILL</property>
-                <property name="y_options"></property>
+                <property name="y_options"/>
               </packing>
             </child>
             <child>
-              <widget class="GtkEntry" id="leap_username_entry">
+              <object class="GtkEntry" id="leap_username_entry">
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
-              </widget>
+              </object>
               <packing>
                 <property name="left_attach">1</property>
                 <property name="right_attach">2</property>
-                <property name="y_options"></property>
+                <property name="y_options"/>
               </packing>
             </child>
             <child>
               <placeholder/>
             </child>
-          </widget>
+          </object>
         </child>
-        <child>
-          <widget class="GtkLabel" id="GtkLabel">
+        <child type="tab">
+          <object class="GtkLabel" id="GtkLabel1">
             <property name="visible">True</property>
-          </widget>
+          </object>
           <packing>
             <property name="tab_fill">False</property>
-            <property name="type">tab</property>
           </packing>
         </child>
-      </widget>
+      </object>
     </child>
-  </widget>
-  <widget class="GtkWindow" id="wpa_psk_widget">
-    <property name="visible">True</property>
+  </object>
+  <object class="GtkWindow" id="wpa_psk_widget">
+    <property name="visible">False</property>
     <property name="title">wpa_psk_widget</property>
     <child>
-      <widget class="GtkNotebook" id="wpa_psk_notebook">
+      <object class="GtkNotebook" id="wpa_psk_notebook">
         <property name="visible">True</property>
         <property name="show_tabs">False</property>
         <property name="show_border">False</property>
         <child>
-          <widget class="GtkTable" id="wpa_psk_table">
+          <object class="GtkTable" id="wpa_psk_table">
             <property name="visible">True</property>
             <property name="n_rows">3</property>
             <property name="n_columns">2</property>
             <property name="column_spacing">12</property>
             <property name="row_spacing">6</property>
             <child>
-              <widget class="GtkLabel" id="wpa_psk_label">
+              <object class="GtkLabel" id="wpa_psk_label">
                 <property name="visible">True</property>
                 <property name="xalign">0</property>
                 <property name="label" translatable="yes">_Password:</property>
                 <property name="use_underline">True</property>
                 <property name="mnemonic_widget">wpa_psk_entry</property>
-              </widget>
+              </object>
               <packing>
                 <property name="x_options">GTK_FILL</property>
-                <property name="y_options"></property>
+                <property name="y_options"/>
               </packing>
             </child>
             <child>
-              <widget class="GtkEntry" id="wpa_psk_entry">
+              <object class="GtkEntry" id="wpa_psk_entry">
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="max_length">64</property>
                 <property name="visibility">False</property>
                 <property name="activates_default">True</property>
-              </widget>
+              </object>
               <packing>
                 <property name="left_attach">1</property>
                 <property name="right_attach">2</property>
-                <property name="y_options"></property>
+                <property name="y_options"/>
               </packing>
             </child>
             <child>
-              <widget class="GtkLabel" id="wpa_psk_type_label">
+              <object class="GtkLabel" id="wpa_psk_type_label">
                 <property name="visible">True</property>
                 <property name="xalign">0</property>
                 <property name="label" translatable="yes">_Type:</property>
                 <property name="use_underline">True</property>
                 <property name="mnemonic_widget">wpa_psk_type_combo</property>
-              </widget>
+              </object>
               <packing>
                 <property name="top_attach">2</property>
                 <property name="bottom_attach">3</property>
                 <property name="x_options">GTK_FILL</property>
-                <property name="y_options"></property>
+                <property name="y_options"/>
               </packing>
             </child>
             <child>
-              <widget class="GtkLabel" id="label32">
+              <object class="GtkLabel" id="label32">
                 <property name="visible">True</property>
                 <property name="xalign">0</property>
-              </widget>
+              </object>
               <packing>
                 <property name="top_attach">1</property>
                 <property name="bottom_attach">2</property>
                 <property name="x_options">GTK_FILL</property>
-                <property name="y_options"></property>
+                <property name="y_options"/>
               </packing>
             </child>
             <child>
-              <widget class="GtkCheckButton" id="show_checkbutton">
+              <object class="GtkCheckButton" id="show_checkbutton_wpa">
                 <property name="label" translatable="yes">Sho_w password</property>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="receives_default">False</property>
                 <property name="use_underline">True</property>
                 <property name="draw_indicator">True</property>
-              </widget>
+              </object>
               <packing>
                 <property name="left_attach">1</property>
                 <property name="right_attach">2</property>
                 <property name="top_attach">1</property>
                 <property name="bottom_attach">2</property>
                 <property name="x_options">GTK_FILL</property>
-                <property name="y_options"></property>
+                <property name="y_options"/>
               </packing>
             </child>
             <child>
-              <widget class="GtkComboBox" id="wpa_psk_type_combo">
+              <object class="GtkComboBox" id="wpa_psk_type_combo">
                 <property name="visible">True</property>
-                <property name="items" translatable="yes"></property>
-              </widget>
+              </object>
               <packing>
                 <property name="left_attach">1</property>
                 <property name="right_attach">2</property>
@@ -752,53 +879,58 @@ Shared Key</property>
                 <property name="y_options">GTK_FILL</property>
               </packing>
             </child>
-          </widget>
+          </object>
         </child>
-        <child>
-          <widget class="GtkLabel" id="GtkLabel">
+        <child type="tab">
+          <object class="GtkLabel" id="GtkLabel2">
             <property name="visible">True</property>
-          </widget>
+          </object>
           <packing>
             <property name="tab_fill">False</property>
-            <property name="type">tab</property>
           </packing>
         </child>
-      </widget>
+      </object>
     </child>
-  </widget>
-  <widget class="GtkWindow" id="wpa_eap_widget">
-    <property name="visible">True</property>
+  </object>
+  <object class="GtkWindow" id="wpa_eap_widget">
+    <property name="visible">False</property>
     <property name="title">wpa_eap_widget</property>
     <child>
-      <widget class="GtkNotebook" id="wpa_eap_notebook">
+      <object class="GtkNotebook" id="wpa_eap_notebook">
         <property name="visible">True</property>
         <property name="show_tabs">False</property>
         <property name="show_border">False</property>
         <child>
-          <widget class="GtkTable" id="wpa_eap_table">
+          <object class="GtkTable" id="wpa_eap_table">
             <property name="visible">True</property>
             <property name="n_rows">2</property>
             <property name="n_columns">2</property>
             <property name="column_spacing">12</property>
             <property name="row_spacing">6</property>
             <child>
-              <widget class="GtkLabel" id="wpa_eap_auth_label">
+              <object class="GtkLabel" id="wpa_eap_auth_label">
                 <property name="visible">True</property>
                 <property name="xalign">0</property>
                 <property name="label" translatable="yes">_Authentication:</property>
                 <property name="use_underline">True</property>
                 <property name="mnemonic_widget">wpa_eap_auth_combo</property>
-              </widget>
+              </object>
               <packing>
                 <property name="x_options">GTK_FILL</property>
-                <property name="y_options"></property>
+                <property name="y_options"/>
               </packing>
             </child>
             <child>
-              <widget class="GtkComboBox" id="wpa_eap_auth_combo">
+              <object class="GtkComboBox" id="wpa_eap_auth_combo">
                 <property name="visible">True</property>
-                <property name="items" translatable="yes"> </property>
-              </widget>
+                <property name="model">model5</property>
+                <child>
+                  <object class="GtkCellRendererText" id="renderer5"/>
+                  <attributes>
+                    <attribute name="text">0</attribute>
+                  </attributes>
+                </child>
+              </object>
               <packing>
                 <property name="left_attach">1</property>
                 <property name="right_attach">2</property>
@@ -806,13 +938,13 @@ Shared Key</property>
               </packing>
             </child>
             <child>
-              <widget class="GtkVBox" id="wpa_eap_method_vbox">
+              <object class="GtkVBox" id="wpa_eap_method_vbox">
                 <property name="visible">True</property>
                 <property name="orientation">vertical</property>
                 <child>
                   <placeholder/>
                 </child>
-              </widget>
+              </object>
               <packing>
                 <property name="right_attach">2</property>
                 <property name="top_attach">1</property>
@@ -820,93 +952,92 @@ Shared Key</property>
                 <property name="x_options">GTK_FILL</property>
               </packing>
             </child>
-          </widget>
+          </object>
         </child>
-        <child>
-          <widget class="GtkLabel" id="GtkLabel">
+        <child type="tab">
+          <object class="GtkLabel" id="GtkLabel3">
             <property name="visible">True</property>
-          </widget>
+          </object>
           <packing>
             <property name="tab_fill">False</property>
-            <property name="type">tab</property>
           </packing>
         </child>
-      </widget>
+      </object>
     </child>
-  </widget>
-  <widget class="GtkWindow" id="eap_tls_widget">
-    <property name="visible">True</property>
+  </object>
+  <object class="GtkWindow" id="eap_tls_widget">
+    <property name="visible">False</property>
     <property name="title">eap_tls_widget</property>
     <child>
-      <widget class="GtkNotebook" id="eap_tls_notebook">
+      <object class="GtkNotebook" id="eap_tls_notebook">
         <property name="visible">True</property>
         <property name="show_tabs">False</property>
         <property name="show_border">False</property>
         <child>
-          <widget class="GtkTable" id="table8">
+          <object class="GtkTable" id="table8">
             <property name="visible">True</property>
             <property name="n_rows">6</property>
             <property name="n_columns">2</property>
             <property name="column_spacing">12</property>
             <property name="row_spacing">6</property>
             <child>
-              <widget class="GtkLabel" id="eap_tls_identity_label">
+              <object class="GtkLabel" id="eap_tls_identity_label">
                 <property name="visible">True</property>
                 <property name="xalign">0</property>
                 <property name="label" translatable="yes">I_dentity:</property>
                 <property name="use_underline">True</property>
                 <property name="mnemonic_widget">eap_tls_identity_entry</property>
-              </widget>
+              </object>
               <packing>
                 <property name="x_options">GTK_FILL</property>
-                <property name="y_options"></property>
+                <property name="y_options"/>
               </packing>
             </child>
             <child>
-              <widget class="GtkEntry" id="eap_tls_identity_entry">
+              <object class="GtkEntry" id="eap_tls_identity_entry">
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
-              </widget>
+              </object>
               <packing>
                 <property name="left_attach">1</property>
                 <property name="right_attach">2</property>
-                <property name="y_options"></property>
+                <property name="y_options"/>
               </packing>
             </child>
             <child>
-              <widget class="GtkLabel" id="eap_tls_user_cert_label">
+              <object class="GtkLabel" id="eap_tls_user_cert_label">
                 <property name="visible">True</property>
                 <property name="xalign">0</property>
                 <property name="label" translatable="yes">_User certificate:</property>
                 <property name="use_underline">True</property>
                 <property name="mnemonic_widget">eap_tls_user_cert_button</property>
-              </widget>
+              </object>
               <packing>
                 <property name="top_attach">1</property>
                 <property name="bottom_attach">2</property>
                 <property name="x_options">GTK_FILL</property>
-                <property name="y_options"></property>
+                <property name="y_options"/>
               </packing>
             </child>
             <child>
-              <widget class="GtkLabel" id="eap_tls_ca_cert_label">
+              <object class="GtkLabel" id="eap_tls_ca_cert_label">
                 <property name="visible">True</property>
                 <property name="xalign">0</property>
                 <property name="label" translatable="yes">C_A certificate:</property>
                 <property name="use_underline">True</property>
                 <property name="mnemonic_widget">eap_tls_ca_cert_button</property>
-              </widget>
+              </object>
               <packing>
                 <property name="top_attach">2</property>
                 <property name="bottom_attach">3</property>
                 <property name="x_options">GTK_FILL</property>
-                <property name="y_options"></property>
+                <property name="y_options"/>
               </packing>
             </child>
             <child>
-              <widget class="GtkFileChooserButton" id="eap_tls_ca_cert_button">
+              <object class="GtkFileChooserButton" id="eap_tls_ca_cert_button">
                 <property name="visible">True</property>
-              </widget>
+              </object>
               <packing>
                 <property name="left_attach">1</property>
                 <property name="right_attach">2</property>
@@ -917,24 +1048,24 @@ Shared Key</property>
               </packing>
             </child>
             <child>
-              <widget class="GtkLabel" id="eap_tls_private_key_label">
+              <object class="GtkLabel" id="eap_tls_private_key_label">
                 <property name="visible">True</property>
                 <property name="xalign">0</property>
                 <property name="label" translatable="yes">Private _key:</property>
                 <property name="use_underline">True</property>
                 <property name="mnemonic_widget">eap_tls_private_key_button</property>
-              </widget>
+              </object>
               <packing>
                 <property name="top_attach">3</property>
                 <property name="bottom_attach">4</property>
                 <property name="x_options">GTK_FILL</property>
-                <property name="y_options"></property>
+                <property name="y_options"/>
               </packing>
             </child>
             <child>
-              <widget class="GtkFileChooserButton" id="eap_tls_private_key_button">
+              <object class="GtkFileChooserButton" id="eap_tls_private_key_button">
                 <property name="visible">True</property>
-              </widget>
+              </object>
               <packing>
                 <property name="left_attach">1</property>
                 <property name="right_attach">2</property>
@@ -945,56 +1076,56 @@ Shared Key</property>
               </packing>
             </child>
             <child>
-              <widget class="GtkLabel" id="eap_tls_private_key_password_label">
+              <object class="GtkLabel" id="eap_tls_private_key_password_label">
                 <property name="visible">True</property>
                 <property name="xalign">0</property>
                 <property name="label" translatable="yes">_Private key password:</property>
                 <property name="use_underline">True</property>
                 <property name="mnemonic_widget">eap_tls_private_key_password_entry</property>
-              </widget>
+              </object>
               <packing>
                 <property name="top_attach">4</property>
                 <property name="bottom_attach">5</property>
                 <property name="x_options">GTK_FILL</property>
-                <property name="y_options"></property>
+                <property name="y_options"/>
               </packing>
             </child>
             <child>
-              <widget class="GtkEntry" id="eap_tls_private_key_password_entry">
+              <object class="GtkEntry" id="eap_tls_private_key_password_entry">
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="visibility">False</property>
-              </widget>
+              </object>
               <packing>
                 <property name="left_attach">1</property>
                 <property name="right_attach">2</property>
                 <property name="top_attach">4</property>
                 <property name="bottom_attach">5</property>
-                <property name="y_options"></property>
+                <property name="y_options"/>
               </packing>
             </child>
             <child>
-              <widget class="GtkCheckButton" id="show_checkbutton">
+              <object class="GtkCheckButton" id="show_checkbutton_eaptls">
                 <property name="label" translatable="yes">Sho_w password</property>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="receives_default">False</property>
                 <property name="use_underline">True</property>
                 <property name="draw_indicator">True</property>
-              </widget>
+              </object>
               <packing>
                 <property name="left_attach">1</property>
                 <property name="right_attach">2</property>
                 <property name="top_attach">5</property>
                 <property name="bottom_attach">6</property>
                 <property name="x_options">GTK_FILL</property>
-                <property name="y_options"></property>
+                <property name="y_options"/>
               </packing>
             </child>
             <child>
-              <widget class="GtkFileChooserButton" id="eap_tls_user_cert_button">
+              <object class="GtkFileChooserButton" id="eap_tls_user_cert_button">
                 <property name="visible">True</property>
-              </widget>
+              </object>
               <packing>
                 <property name="left_attach">1</property>
                 <property name="right_attach">2</property>
@@ -1007,181 +1138,179 @@ Shared Key</property>
             <child>
               <placeholder/>
             </child>
-          </widget>
+          </object>
         </child>
-        <child>
-          <widget class="GtkLabel" id="label34">
+        <child type="tab">
+          <object class="GtkLabel" id="label34">
             <property name="visible">True</property>
-          </widget>
+          </object>
           <packing>
             <property name="tab_fill">False</property>
-            <property name="type">tab</property>
           </packing>
         </child>
-      </widget>
+      </object>
     </child>
-  </widget>
-  <widget class="GtkWindow" id="eap_leap_widget">
-    <property name="visible">True</property>
+  </object>
+  <object class="GtkWindow" id="eap_leap_widget">
+    <property name="visible">False</property>
     <property name="title">eap_leap_widget</property>
     <child>
-      <widget class="GtkNotebook" id="eap_leap_notebook">
+      <object class="GtkNotebook" id="eap_leap_notebook">
         <property name="visible">True</property>
         <property name="show_tabs">False</property>
         <property name="show_border">False</property>
         <child>
-          <widget class="GtkTable" id="table9">
+          <object class="GtkTable" id="table9">
             <property name="visible">True</property>
             <property name="n_rows">3</property>
             <property name="n_columns">2</property>
             <property name="column_spacing">12</property>
             <property name="row_spacing">6</property>
             <child>
-              <widget class="GtkLabel" id="eap_leap_username_label">
+              <object class="GtkLabel" id="eap_leap_username_label">
                 <property name="visible">True</property>
                 <property name="xalign">0</property>
                 <property name="label" translatable="yes">_Username:</property>
                 <property name="use_underline">True</property>
                 <property name="mnemonic_widget">eap_leap_username_entry</property>
-              </widget>
+              </object>
               <packing>
                 <property name="x_options">GTK_FILL</property>
-                <property name="y_options"></property>
+                <property name="y_options"/>
               </packing>
             </child>
             <child>
-              <widget class="GtkLabel" id="eap_leap_password_label">
+              <object class="GtkLabel" id="eap_leap_password_label">
                 <property name="visible">True</property>
                 <property name="xalign">0</property>
                 <property name="label" translatable="yes">_Password:</property>
                 <property name="use_underline">True</property>
                 <property name="mnemonic_widget">eap_leap_password_entry</property>
-              </widget>
+              </object>
               <packing>
                 <property name="top_attach">1</property>
                 <property name="bottom_attach">2</property>
                 <property name="x_options">GTK_FILL</property>
-                <property name="y_options"></property>
+                <property name="y_options"/>
               </packing>
             </child>
             <child>
-              <widget class="GtkEntry" id="eap_leap_password_entry">
+              <object class="GtkEntry" id="eap_leap_password_entry">
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="visibility">False</property>
-              </widget>
+              </object>
               <packing>
                 <property name="left_attach">1</property>
                 <property name="right_attach">2</property>
                 <property name="top_attach">1</property>
                 <property name="bottom_attach">2</property>
-                <property name="y_options"></property>
+                <property name="y_options"/>
               </packing>
             </child>
             <child>
-              <widget class="GtkCheckButton" id="show_checkbutton">
+              <object class="GtkCheckButton" id="show_checkbutton_eapleap">
                 <property name="label" translatable="yes">Sho_w password</property>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="receives_default">False</property>
                 <property name="use_underline">True</property>
                 <property name="draw_indicator">True</property>
-              </widget>
+              </object>
               <packing>
                 <property name="left_attach">1</property>
                 <property name="right_attach">2</property>
                 <property name="top_attach">2</property>
                 <property name="bottom_attach">3</property>
                 <property name="x_options">GTK_FILL</property>
-                <property name="y_options"></property>
+                <property name="y_options"/>
               </packing>
             </child>
             <child>
-              <widget class="GtkEntry" id="eap_leap_username_entry">
+              <object class="GtkEntry" id="eap_leap_username_entry">
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
-              </widget>
+              </object>
               <packing>
                 <property name="left_attach">1</property>
                 <property name="right_attach">2</property>
-                <property name="y_options"></property>
+                <property name="y_options"/>
               </packing>
             </child>
             <child>
               <placeholder/>
             </child>
-          </widget>
+          </object>
         </child>
-        <child>
-          <widget class="GtkLabel" id="label43">
+        <child type="tab">
+          <object class="GtkLabel" id="label43">
             <property name="visible">True</property>
-          </widget>
+          </object>
           <packing>
             <property name="tab_fill">False</property>
-            <property name="type">tab</property>
           </packing>
         </child>
-      </widget>
+      </object>
     </child>
-  </widget>
-  <widget class="GtkWindow" id="eap_ttls_widget">
-    <property name="visible">True</property>
+  </object>
+  <object class="GtkWindow" id="eap_ttls_widget">
+    <property name="visible">False</property>
     <property name="title">eap_ttls_widget</property>
     <child>
-      <widget class="GtkNotebook" id="eap_ttls_notebook">
+      <object class="GtkNotebook" id="eap_ttls_notebook">
         <property name="visible">True</property>
         <property name="show_tabs">False</property>
         <property name="show_border">False</property>
         <child>
-          <widget class="GtkTable" id="table10">
+          <object class="GtkTable" id="table10">
             <property name="visible">True</property>
             <property name="n_rows">4</property>
             <property name="n_columns">2</property>
             <property name="column_spacing">12</property>
             <property name="row_spacing">6</property>
             <child>
-              <widget class="GtkLabel" id="eap_ttls_anon_identity_label">
+              <object class="GtkLabel" id="eap_ttls_anon_identity_label">
                 <property name="visible">True</property>
                 <property name="xalign">0</property>
                 <property name="label" translatable="yes">Anony_mous identity:</property>
                 <property name="use_underline">True</property>
                 <property name="mnemonic_widget">eap_ttls_anon_identity_entry</property>
-              </widget>
+              </object>
               <packing>
                 <property name="x_options">GTK_FILL</property>
-                <property name="y_options"></property>
+                <property name="y_options"/>
               </packing>
             </child>
             <child>
-              <widget class="GtkEntry" id="eap_ttls_anon_identity_entry">
+              <object class="GtkEntry" id="eap_ttls_anon_identity_entry">
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
-              </widget>
+              </object>
               <packing>
                 <property name="left_attach">1</property>
                 <property name="right_attach">2</property>
-                <property name="y_options"></property>
+                <property name="y_options"/>
               </packing>
             </child>
             <child>
-              <widget class="GtkLabel" id="eap_ttls_ca_cert_label">
+              <object class="GtkLabel" id="eap_ttls_ca_cert_label">
                 <property name="visible">True</property>
                 <property name="xalign">0</property>
                 <property name="label" translatable="yes">C_A certificate:</property>
                 <property name="use_underline">True</property>
                 <property name="mnemonic_widget">eap_ttls_ca_cert_button</property>
-              </widget>
+              </object>
               <packing>
                 <property name="top_attach">1</property>
                 <property name="bottom_attach">2</property>
                 <property name="x_options">GTK_FILL</property>
-                <property name="y_options"></property>
+                <property name="y_options"/>
               </packing>
             </child>
             <child>
-              <widget class="GtkFileChooserButton" id="eap_ttls_ca_cert_button">
+              <object class="GtkFileChooserButton" id="eap_ttls_ca_cert_button">
                 <property name="visible">True</property>
-              </widget>
+              </object>
               <packing>
                 <property name="left_attach">1</property>
                 <property name="right_attach">2</property>
@@ -1192,25 +1321,31 @@ Shared Key</property>
               </packing>
             </child>
             <child>
-              <widget class="GtkLabel" id="eap_ttls_inner_auth_label">
+              <object class="GtkLabel" id="eap_ttls_inner_auth_label">
                 <property name="visible">True</property>
                 <property name="xalign">0</property>
                 <property name="label" translatable="yes">I_nner authentication:</property>
                 <property name="use_underline">True</property>
                 <property name="mnemonic_widget">eap_ttls_inner_auth_combo</property>
-              </widget>
+              </object>
               <packing>
                 <property name="top_attach">2</property>
                 <property name="bottom_attach">3</property>
                 <property name="x_options">GTK_FILL</property>
-                <property name="y_options"></property>
+                <property name="y_options"/>
               </packing>
             </child>
             <child>
-              <widget class="GtkComboBox" id="eap_ttls_inner_auth_combo">
+              <object class="GtkComboBox" id="eap_ttls_inner_auth_combo">
                 <property name="visible">True</property>
-                <property name="items" translatable="yes"> </property>
-              </widget>
+                <property name="model">model6</property>
+                <child>
+                  <object class="GtkCellRendererText" id="renderer6"/>
+                  <attributes>
+                    <attribute name="text">0</attribute>
+                  </attributes>
+                </child>
+              </object>
               <packing>
                 <property name="left_attach">1</property>
                 <property name="right_attach">2</property>
@@ -1221,14 +1356,14 @@ Shared Key</property>
               </packing>
             </child>
             <child>
-              <widget class="GtkVBox" id="eap_ttls_inner_auth_vbox">
+              <object class="GtkVBox" id="eap_ttls_inner_auth_vbox">
                 <property name="visible">True</property>
                 <property name="orientation">vertical</property>
                 <property name="spacing">6</property>
                 <child>
                   <placeholder/>
                 </child>
-              </widget>
+              </object>
               <packing>
                 <property name="right_attach">2</property>
                 <property name="top_attach">3</property>
@@ -1236,117 +1371,116 @@ Shared Key</property>
                 <property name="x_options">GTK_FILL</property>
               </packing>
             </child>
-          </widget>
+          </object>
         </child>
-        <child>
-          <widget class="GtkLabel" id="label49">
+        <child type="tab">
+          <object class="GtkLabel" id="label49">
             <property name="visible">True</property>
-          </widget>
+          </object>
           <packing>
             <property name="tab_fill">False</property>
-            <property name="type">tab</property>
           </packing>
         </child>
-      </widget>
+      </object>
     </child>
-  </widget>
-  <widget class="GtkWindow" id="eap_simple_widget">
-    <property name="visible">True</property>
+  </object>
+  <object class="GtkWindow" id="eap_simple_widget">
+    <property name="visible">False</property>
     <property name="title">eap_simple_widget</property>
     <child>
-      <widget class="GtkNotebook" id="eap_simple_notebook">
+      <object class="GtkNotebook" id="eap_simple_notebook">
         <property name="visible">True</property>
         <property name="show_tabs">False</property>
         <property name="show_border">False</property>
         <child>
-          <widget class="GtkTable" id="table11">
+          <object class="GtkTable" id="table11">
             <property name="visible">True</property>
             <property name="n_rows">3</property>
             <property name="n_columns">2</property>
             <property name="column_spacing">12</property>
             <property name="row_spacing">6</property>
             <child>
-              <widget class="GtkLabel" id="eap_simple_username_label">
+              <object class="GtkLabel" id="eap_simple_username_label">
                 <property name="visible">True</property>
                 <property name="xalign">0</property>
                 <property name="label" translatable="yes">_Username:</property>
                 <property name="use_underline">True</property>
                 <property name="mnemonic_widget">eap_simple_username_entry</property>
-              </widget>
+              </object>
               <packing>
                 <property name="x_options">GTK_FILL</property>
-                <property name="y_options"></property>
+                <property name="y_options"/>
               </packing>
             </child>
             <child>
-              <widget class="GtkLabel" id="eap_simple_password_label">
+              <object class="GtkLabel" id="eap_simple_password_label">
                 <property name="visible">True</property>
                 <property name="xalign">0</property>
                 <property name="label" translatable="yes">_Password:</property>
                 <property name="use_underline">True</property>
                 <property name="mnemonic_widget">eap_simple_password_entry</property>
-              </widget>
+              </object>
               <packing>
                 <property name="top_attach">1</property>
                 <property name="bottom_attach">2</property>
                 <property name="x_options">GTK_FILL</property>
-                <property name="y_options"></property>
+                <property name="y_options"/>
               </packing>
             </child>
             <child>
-              <widget class="GtkEntry" id="eap_simple_password_entry">
+              <object class="GtkEntry" id="eap_simple_password_entry">
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="visibility">False</property>
-              </widget>
+              </object>
               <packing>
                 <property name="left_attach">1</property>
                 <property name="right_attach">2</property>
                 <property name="top_attach">1</property>
                 <property name="bottom_attach">2</property>
-                <property name="y_options"></property>
+                <property name="y_options"/>
               </packing>
             </child>
             <child>
-              <widget class="GtkEntry" id="eap_simple_username_entry">
+              <object class="GtkEntry" id="eap_simple_username_entry">
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
-              </widget>
+              </object>
               <packing>
                 <property name="left_attach">1</property>
                 <property name="right_attach">2</property>
-                <property name="y_options"></property>
+                <property name="y_options"/>
               </packing>
             </child>
             <child>
-              <widget class="GtkAlignment" id="alignment1">
+              <object class="GtkAlignment" id="alignment1">
                 <property name="visible">True</property>
                 <child>
-                  <widget class="GtkVBox" id="vbox1">
+                  <object class="GtkVBox" id="vbox5">
                     <property name="visible">True</property>
                     <property name="orientation">vertical</property>
                     <child>
-                      <widget class="GtkCheckButton" id="eap_password_always_ask">
+                      <object class="GtkCheckButton" id="eap_password_always_ask">
                         <property name="label" translatable="yes">As_k for this password every time</property>
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
                         <property name="receives_default">False</property>
                         <property name="use_underline">True</property>
                         <property name="draw_indicator">True</property>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="position">0</property>
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkCheckButton" id="show_checkbutton">
+                      <object class="GtkCheckButton" id="show_checkbutton_eapsimple">
                         <property name="label" translatable="yes">Sho_w password</property>
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
                         <property name="receives_default">False</property>
                         <property name="use_underline">True</property>
                         <property name="draw_indicator">True</property>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="position">1</property>
                       </packing>
@@ -1354,9 +1488,9 @@ Shared Key</property>
                     <child>
                       <placeholder/>
                     </child>
-                  </widget>
+                  </object>
                 </child>
-              </widget>
+              </object>
               <packing>
                 <property name="left_attach">1</property>
                 <property name="right_attach">2</property>
@@ -1367,53 +1501,58 @@ Shared Key</property>
             <child>
               <placeholder/>
             </child>
-          </widget>
+          </object>
         </child>
-        <child>
-          <widget class="GtkLabel" id="label53">
+        <child type="tab">
+          <object class="GtkLabel" id="label53">
             <property name="visible">True</property>
-          </widget>
+          </object>
           <packing>
             <property name="tab_fill">False</property>
-            <property name="type">tab</property>
           </packing>
         </child>
-      </widget>
+      </object>
     </child>
-  </widget>
-  <widget class="GtkWindow" id="dynamic_wep_widget">
-    <property name="visible">True</property>
+  </object>
+  <object class="GtkWindow" id="dynamic_wep_widget">
+    <property name="visible">False</property>
     <property name="title">dynamic_wep_widget</property>
     <child>
-      <widget class="GtkNotebook" id="dynamic_wep_notebook">
+      <object class="GtkNotebook" id="dynamic_wep_notebook">
         <property name="visible">True</property>
         <property name="show_tabs">False</property>
         <property name="show_border">False</property>
         <child>
-          <widget class="GtkTable" id="table12">
+          <object class="GtkTable" id="table12">
             <property name="visible">True</property>
             <property name="n_rows">3</property>
             <property name="n_columns">2</property>
             <property name="column_spacing">12</property>
             <property name="row_spacing">6</property>
             <child>
-              <widget class="GtkLabel" id="dynamic_wep_auth_label">
+              <object class="GtkLabel" id="dynamic_wep_auth_label">
                 <property name="visible">True</property>
                 <property name="xalign">0</property>
                 <property name="label" translatable="yes">_Authentication:</property>
                 <property name="use_underline">True</property>
                 <property name="mnemonic_widget">dynamic_wep_auth_combo</property>
-              </widget>
+              </object>
               <packing>
                 <property name="x_options">GTK_FILL</property>
-                <property name="y_options"></property>
+                <property name="y_options"/>
               </packing>
             </child>
             <child>
-              <widget class="GtkComboBox" id="dynamic_wep_auth_combo">
+              <object class="GtkComboBox" id="dynamic_wep_auth_combo">
                 <property name="visible">True</property>
-                <property name="items" translatable="yes"> </property>
-              </widget>
+                <property name="model">model7</property>
+                <child>
+                  <object class="GtkCellRendererText" id="renderer7"/>
+                  <attributes>
+                    <attribute name="text">0</attribute>
+                  </attributes>
+                </child>
+              </object>
               <packing>
                 <property name="left_attach">1</property>
                 <property name="right_attach">2</property>
@@ -1421,14 +1560,14 @@ Shared Key</property>
               </packing>
             </child>
             <child>
-              <widget class="GtkVBox" id="dynamic_wep_method_vbox">
+              <object class="GtkVBox" id="dynamic_wep_method_vbox">
                 <property name="visible">True</property>
                 <property name="orientation">vertical</property>
                 <property name="spacing">6</property>
                 <child>
                   <placeholder/>
                 </child>
-              </widget>
+              </object>
               <packing>
                 <property name="right_attach">2</property>
                 <property name="top_attach">1</property>
@@ -1442,116 +1581,114 @@ Shared Key</property>
             <child>
               <placeholder/>
             </child>
-          </widget>
+          </object>
         </child>
-        <child>
-          <widget class="GtkLabel" id="label55">
+        <child type="tab">
+          <object class="GtkLabel" id="label55">
             <property name="visible">True</property>
-          </widget>
+          </object>
           <packing>
             <property name="tab_fill">False</property>
-            <property name="type">tab</property>
           </packing>
         </child>
-      </widget>
+      </object>
     </child>
-  </widget>
-  <widget class="GtkDialog" id="nag_user_dialog">
+  </object>
+  <object class="GtkDialog" id="nag_user_dialog">
     <property name="border_width">5</property>
     <property name="modal">True</property>
     <property name="window_position">center</property>
     <property name="type_hint">dialog</property>
     <property name="has_separator">False</property>
     <child internal-child="vbox">
-      <widget class="GtkVBox" id="dialog-vbox2">
+      <object class="GtkVBox" id="dialog-vbox2">
         <property name="visible">True</property>
         <property name="orientation">vertical</property>
         <property name="spacing">14</property>
         <child>
-          <widget class="GtkHBox" id="hbox5">
+          <object class="GtkHBox" id="hbox5">
             <property name="visible">True</property>
             <property name="border_width">5</property>
             <property name="spacing">12</property>
             <child>
-              <widget class="GtkImage" id="image4">
+              <object class="GtkImage" id="image4">
                 <property name="visible">True</property>
                 <property name="yalign">0</property>
                 <property name="stock">gtk-dialog-warning</property>
                 <property name="icon-size">6</property>
-              </widget>
+              </object>
               <packing>
                 <property name="expand">False</property>
                 <property name="position">0</property>
               </packing>
             </child>
             <child>
-              <widget class="GtkVBox" id="content_vbox">
+              <object class="GtkVBox" id="content_vbox">
                 <property name="visible">True</property>
                 <property name="orientation">vertical</property>
                 <property name="spacing">12</property>
                 <child>
-                  <widget class="GtkLabel" id="content_label">
+                  <object class="GtkLabel" id="content_label">
                     <property name="visible">True</property>
                     <property name="xalign">0</property>
                     <property name="yalign">0</property>
                     <property name="label">alert text</property>
                     <property name="use_markup">True</property>
                     <property name="wrap">True</property>
-                  </widget>
+                  </object>
                   <packing>
                     <property name="position">0</property>
                   </packing>
                 </child>
                 <child>
-                  <widget class="GtkCheckButton" id="ignore_checkbox">
+                  <object class="GtkCheckButton" id="ignore_checkbox">
                     <property name="label" translatable="yes">Don't _warn me again</property>
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
                     <property name="receives_default">False</property>
                     <property name="use_underline">True</property>
                     <property name="draw_indicator">True</property>
-                  </widget>
+                  </object>
                   <packing>
                     <property name="expand">False</property>
                     <property name="fill">False</property>
                     <property name="position">1</property>
                   </packing>
                 </child>
-              </widget>
+              </object>
               <packing>
                 <property name="position">1</property>
               </packing>
             </child>
-          </widget>
+          </object>
           <packing>
             <property name="position">1</property>
           </packing>
         </child>
         <child internal-child="action_area">
-          <widget class="GtkHButtonBox" id="dialog-action_area2">
+          <object class="GtkHButtonBox" id="dialog-action_area2">
             <property name="visible">True</property>
             <property name="layout_style">end</property>
             <child>
-              <widget class="GtkButton" id="ignore_button">
-                <property name="response_id">-9</property>
+              <object class="GtkButton" id="ignore_button">
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="can_default">True</property>
                 <property name="receives_default">False</property>
                 <child>
-                  <widget class="GtkAlignment" id="alignment3">
+                  <object class="GtkAlignment" id="alignment3">
                     <property name="visible">True</property>
                     <property name="xscale">0</property>
                     <property name="yscale">0</property>
                     <child>
-                      <widget class="GtkHBox" id="hbox4">
+                      <object class="GtkHBox" id="hbox4">
                         <property name="visible">True</property>
                         <property name="spacing">2</property>
                         <child>
-                          <widget class="GtkImage" id="image3">
+                          <object class="GtkImage" id="image3">
                             <property name="visible">True</property>
                             <property name="stock">gtk-no</property>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="expand">False</property>
                             <property name="fill">False</property>
@@ -1559,22 +1696,22 @@ Shared Key</property>
                           </packing>
                         </child>
                         <child>
-                          <widget class="GtkLabel" id="label57">
+                          <object class="GtkLabel" id="label57">
                             <property name="visible">True</property>
                             <property name="label" translatable="yes">No</property>
                             <property name="use_underline">True</property>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="expand">False</property>
                             <property name="fill">False</property>
                             <property name="position">1</property>
                           </packing>
                         </child>
-                      </widget>
+                      </object>
                     </child>
-                  </widget>
+                  </object>
                 </child>
-              </widget>
+              </object>
               <packing>
                 <property name="expand">False</property>
                 <property name="fill">False</property>
@@ -1582,26 +1719,25 @@ Shared Key</property>
               </packing>
             </child>
             <child>
-              <widget class="GtkButton" id="change_button">
-                <property name="response_id">-8</property>
+              <object class="GtkButton" id="change_button">
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="can_default">True</property>
                 <property name="receives_default">False</property>
                 <child>
-                  <widget class="GtkAlignment" id="alignment2">
+                  <object class="GtkAlignment" id="alignment2">
                     <property name="visible">True</property>
                     <property name="xscale">0</property>
                     <property name="yscale">0</property>
                     <child>
-                      <widget class="GtkHBox" id="hbox3">
+                      <object class="GtkHBox" id="hbox3">
                         <property name="visible">True</property>
                         <property name="spacing">2</property>
                         <child>
-                          <widget class="GtkImage" id="image2">
+                          <object class="GtkImage" id="image2">
                             <property name="visible">True</property>
                             <property name="stock">gtk-ok</property>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="expand">False</property>
                             <property name="fill">False</property>
@@ -1609,96 +1745,100 @@ Shared Key</property>
                           </packing>
                         </child>
                         <child>
-                          <widget class="GtkLabel" id="label56">
+                          <object class="GtkLabel" id="label56">
                             <property name="visible">True</property>
                             <property name="label" translatable="yes">Yes</property>
                             <property name="use_underline">True</property>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="expand">False</property>
                             <property name="fill">False</property>
                             <property name="position">1</property>
                           </packing>
                         </child>
-                      </widget>
+                      </object>
                     </child>
-                  </widget>
+                  </object>
                 </child>
-              </widget>
+              </object>
               <packing>
                 <property name="expand">False</property>
                 <property name="fill">False</property>
                 <property name="position">1</property>
               </packing>
             </child>
-          </widget>
+          </object>
           <packing>
             <property name="expand">False</property>
             <property name="pack_type">end</property>
             <property name="position">0</property>
           </packing>
         </child>
-      </widget>
+      </object>
     </child>
-  </widget>
-  <widget class="GtkWindow" id="eap_peap_widget">
-    <property name="visible">True</property>
+    <action-widgets>
+      <action-widget response="-9">ignore_button</action-widget>
+      <action-widget response="-8">change_button</action-widget>
+    </action-widgets>
+  </object>
+  <object class="GtkWindow" id="eap_peap_widget">
+    <property name="visible">False</property>
     <property name="title">eap_peap_widget</property>
     <child>
-      <widget class="GtkNotebook" id="eap_peap_notebook">
+      <object class="GtkNotebook" id="eap_peap_notebook">
         <property name="visible">True</property>
         <property name="show_tabs">False</property>
         <property name="show_border">False</property>
         <child>
-          <widget class="GtkTable" id="table13">
+          <object class="GtkTable" id="table13">
             <property name="visible">True</property>
             <property name="n_rows">5</property>
             <property name="n_columns">2</property>
             <property name="column_spacing">12</property>
             <property name="row_spacing">6</property>
             <child>
-              <widget class="GtkLabel" id="eap_peap_anon_identity_label">
+              <object class="GtkLabel" id="eap_peap_anon_identity_label">
                 <property name="visible">True</property>
                 <property name="xalign">0</property>
                 <property name="label" translatable="yes">Anony_mous identity:</property>
                 <property name="use_underline">True</property>
                 <property name="mnemonic_widget">eap_peap_anon_identity_entry</property>
-              </widget>
+              </object>
               <packing>
                 <property name="x_options">GTK_FILL</property>
-                <property name="y_options"></property>
+                <property name="y_options"/>
               </packing>
             </child>
             <child>
-              <widget class="GtkEntry" id="eap_peap_anon_identity_entry">
+              <object class="GtkEntry" id="eap_peap_anon_identity_entry">
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
-              </widget>
+              </object>
               <packing>
                 <property name="left_attach">1</property>
                 <property name="right_attach">2</property>
-                <property name="y_options"></property>
+                <property name="y_options"/>
               </packing>
             </child>
             <child>
-              <widget class="GtkLabel" id="eap_peap_ca_cert_label">
+              <object class="GtkLabel" id="eap_peap_ca_cert_label">
                 <property name="visible">True</property>
                 <property name="xalign">0</property>
                 <property name="label" translatable="yes">C_A certificate:</property>
                 <property name="use_underline">True</property>
                 <property name="mnemonic_widget">eap_peap_ca_cert_button</property>
-              </widget>
+              </object>
               <packing>
                 <property name="top_attach">1</property>
                 <property name="bottom_attach">2</property>
                 <property name="x_options">GTK_FILL</property>
-                <property name="y_options"></property>
+                <property name="y_options"/>
               </packing>
             </child>
             <child>
-              <widget class="GtkFileChooserButton" id="eap_peap_ca_cert_button">
+              <object class="GtkFileChooserButton" id="eap_peap_ca_cert_button">
                 <property name="visible">True</property>
-              </widget>
+              </object>
               <packing>
                 <property name="left_attach">1</property>
                 <property name="right_attach">2</property>
@@ -1709,13 +1849,13 @@ Shared Key</property>
               </packing>
             </child>
             <child>
-              <widget class="GtkVBox" id="eap_peap_inner_auth_vbox">
+              <object class="GtkVBox" id="eap_peap_inner_auth_vbox">
                 <property name="visible">True</property>
                 <property name="orientation">vertical</property>
                 <child>
                   <placeholder/>
                 </child>
-              </widget>
+              </object>
               <packing>
                 <property name="right_attach">2</property>
                 <property name="top_attach">4</property>
@@ -1724,25 +1864,31 @@ Shared Key</property>
               </packing>
             </child>
             <child>
-              <widget class="GtkLabel" id="eap_peap_inner_auth_label">
+              <object class="GtkLabel" id="eap_peap_inner_auth_label">
                 <property name="visible">True</property>
                 <property name="xalign">0</property>
                 <property name="label" translatable="yes">I_nner authentication:</property>
                 <property name="use_underline">True</property>
                 <property name="mnemonic_widget">eap_peap_inner_auth_combo</property>
-              </widget>
+              </object>
               <packing>
                 <property name="top_attach">3</property>
                 <property name="bottom_attach">4</property>
                 <property name="x_options">GTK_FILL</property>
-                <property name="y_options"></property>
+                <property name="y_options"/>
               </packing>
             </child>
             <child>
-              <widget class="GtkComboBox" id="eap_peap_inner_auth_combo">
+              <object class="GtkComboBox" id="eap_peap_inner_auth_combo">
                 <property name="visible">True</property>
-                <property name="items" translatable="yes"> </property>
-              </widget>
+                <property name="model">model8</property>
+                <child>
+                  <object class="GtkCellRendererText" id="renderer8"/>
+                  <attributes>
+                    <attribute name="text">0</attribute>
+                  </attributes>
+                </child>
+              </object>
               <packing>
                 <property name="left_attach">1</property>
                 <property name="right_attach">2</property>
@@ -1753,27 +1899,31 @@ Shared Key</property>
               </packing>
             </child>
             <child>
-              <widget class="GtkLabel" id="eap_peap_version_label">
+              <object class="GtkLabel" id="eap_peap_version_label">
                 <property name="visible">True</property>
                 <property name="xalign">0</property>
                 <property name="label" translatable="yes">_PEAP version:</property>
                 <property name="use_underline">True</property>
                 <property name="mnemonic_widget">eap_peap_version_combo</property>
-              </widget>
+              </object>
               <packing>
                 <property name="top_attach">2</property>
                 <property name="bottom_attach">3</property>
                 <property name="x_options">GTK_FILL</property>
-                <property name="y_options"></property>
+                <property name="y_options"/>
               </packing>
             </child>
             <child>
-              <widget class="GtkComboBox" id="eap_peap_version_combo">
+              <object class="GtkComboBox" id="eap_peap_version_combo">
                 <property name="visible">True</property>
-                <property name="items" translatable="yes">Automatic
-Version 0
-Version 1</property>
-              </widget>
+                <property name="model">model9</property>
+                <child>
+                  <object class="GtkCellRendererText" id="renderer9"/>
+                  <attributes>
+                    <attribute name="text">0</attribute>
+                  </attributes>
+                </child>
+              </object>
               <packing>
                 <property name="left_attach">1</property>
                 <property name="right_attach">2</property>
@@ -1783,21 +1933,20 @@ Version 1</property>
                 <property name="y_options">GTK_FILL</property>
               </packing>
             </child>
-          </widget>
+          </object>
         </child>
-        <child>
-          <widget class="GtkLabel" id="label61">
+        <child type="tab">
+          <object class="GtkLabel" id="label61">
             <property name="visible">True</property>
-          </widget>
+          </object>
           <packing>
             <property name="tab_fill">False</property>
-            <property name="type">tab</property>
           </packing>
         </child>
-      </widget>
+      </object>
     </child>
-  </widget>
-  <widget class="GtkDialog" id="unlock_dialog">
+  </object>
+  <object class="GtkDialog" id="unlock_dialog">
     <property name="border_width">5</property>
     <property name="window_position">center</property>
     <property name="default_width">400</property>
@@ -1805,27 +1954,27 @@ Version 1</property>
     <property name="type_hint">dialog</property>
     <property name="has_separator">False</property>
     <child internal-child="vbox">
-      <widget class="GtkVBox" id="dialog-vbox4">
+      <object class="GtkVBox" id="dialog-vbox4">
         <property name="visible">True</property>
         <property name="orientation">vertical</property>
         <property name="spacing">2</property>
         <child>
-          <widget class="GtkHBox" id="hbox7">
+          <object class="GtkHBox" id="hbox7">
             <property name="visible">True</property>
             <property name="spacing">6</property>
             <child>
-              <widget class="GtkAlignment" id="alignment5">
+              <object class="GtkAlignment" id="alignment5">
                 <property name="visible">True</property>
                 <property name="yalign">0</property>
                 <child>
-                  <widget class="GtkImage" id="image7">
+                  <object class="GtkImage" id="image7">
                     <property name="visible">True</property>
                     <property name="yalign">0</property>
                     <property name="stock">gtk-dialog-authentication</property>
                     <property name="icon-size">6</property>
-                  </widget>
+                  </object>
                 </child>
-              </widget>
+              </object>
               <packing>
                 <property name="expand">False</property>
                 <property name="padding">6</property>
@@ -1833,17 +1982,17 @@ Version 1</property>
               </packing>
             </child>
             <child>
-              <widget class="GtkVBox" id="vbox3">
+              <object class="GtkVBox" id="vbox3">
                 <property name="visible">True</property>
                 <property name="orientation">vertical</property>
                 <property name="spacing">12</property>
                 <child>
-                  <widget class="GtkLabel" id="header_label">
+                  <object class="GtkLabel" id="header_label">
                     <property name="visible">True</property>
                     <property name="xalign">0</property>
                     <property name="label" translatable="yes">label</property>
                     <property name="use_markup">True</property>
-                  </widget>
+                  </object>
                   <packing>
                     <property name="expand">False</property>
                     <property name="padding">12</property>
@@ -1851,19 +2000,19 @@ Version 1</property>
                   </packing>
                 </child>
                 <child>
-                  <widget class="GtkLabel" id="desc_label">
+                  <object class="GtkLabel" id="desc_label">
                     <property name="visible">True</property>
                     <property name="xalign">0</property>
                     <property name="label" translatable="yes">label</property>
                     <property name="wrap">True</property>
-                  </widget>
+                  </object>
                   <packing>
                     <property name="expand">False</property>
                     <property name="position">1</property>
                   </packing>
                 </child>
                 <child>
-                  <widget class="GtkAlignment" id="alignment2">
+                  <object class="GtkAlignment" id="alignment6">
                     <property name="visible">True</property>
                     <property name="xalign">0</property>
                     <property name="yalign">0</property>
@@ -1872,41 +2021,40 @@ Version 1</property>
                     <property name="left_padding">12</property>
                     <property name="right_padding">12</property>
                     <child>
-                      <widget class="GtkTable" id="table14">
+                      <object class="GtkTable" id="table14">
                         <property name="visible">True</property>
                         <property name="n_rows">5</property>
                         <property name="n_columns">2</property>
                         <property name="column_spacing">6</property>
                         <property name="row_spacing">6</property>
                         <child>
-                          <widget class="GtkLabel" id="code1_label">
+                          <object class="GtkLabel" id="code1_label">
                             <property name="visible">True</property>
                             <property name="xalign">0</property>
                             <property name="label" translatable="yes">label</property>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="x_options">GTK_FILL</property>
                           </packing>
                         </child>
                         <child>
-                          <widget class="GtkEntry" id="code1_entry">
+                          <object class="GtkEntry" id="code1_entry">
                             <property name="visible">True</property>
                             <property name="can_focus">True</property>
                             <property name="has_focus">True</property>
-                            <property name="invisible_char">&#x25CF;</property>
                             <property name="activates_default">True</property>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="left_attach">1</property>
                             <property name="right_attach">2</property>
                           </packing>
                         </child>
                         <child>
-                          <widget class="GtkLabel" id="code2_label">
+                          <object class="GtkLabel" id="code2_label">
                             <property name="visible">True</property>
                             <property name="xalign">0</property>
                             <property name="label" translatable="yes">label</property>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="top_attach">1</property>
                             <property name="bottom_attach">2</property>
@@ -1914,12 +2062,11 @@ Version 1</property>
                           </packing>
                         </child>
                         <child>
-                          <widget class="GtkEntry" id="code2_entry">
+                          <object class="GtkEntry" id="code2_entry">
                             <property name="visible">True</property>
                             <property name="can_focus">True</property>
-                            <property name="invisible_char">&#x25CF;</property>
                             <property name="activates_default">True</property>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="left_attach">1</property>
                             <property name="right_attach">2</property>
@@ -1928,11 +2075,11 @@ Version 1</property>
                           </packing>
                         </child>
                         <child>
-                          <widget class="GtkLabel" id="code3_label">
+                          <object class="GtkLabel" id="code3_label">
                             <property name="visible">True</property>
                             <property name="xalign">0</property>
                             <property name="label" translatable="yes">label</property>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="top_attach">2</property>
                             <property name="bottom_attach">3</property>
@@ -1940,12 +2087,11 @@ Version 1</property>
                           </packing>
                         </child>
                         <child>
-                          <widget class="GtkEntry" id="code3_entry">
+                          <object class="GtkEntry" id="code3_entry">
                             <property name="visible">True</property>
                             <property name="can_focus">True</property>
-                            <property name="invisible_char">&#x25CF;</property>
                             <property name="activates_default">True</property>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="left_attach">1</property>
                             <property name="right_attach">2</property>
@@ -1954,17 +2100,17 @@ Version 1</property>
                           </packing>
                         </child>
                         <child>
-                          <widget class="GtkHBox" id="progress_hbox">
+                          <object class="GtkHBox" id="progress_hbox">
                             <property name="visible">True</property>
                             <property name="spacing">6</property>
                             <child>
-                              <widget class="GtkAlignment" id="spinner_alignment">
+                              <object class="GtkAlignment" id="spinner_alignment">
                                 <property name="visible">True</property>
                                 <property name="xalign">0</property>
                                 <child>
                                   <placeholder/>
                                 </child>
-                              </widget>
+                              </object>
                               <packing>
                                 <property name="expand">False</property>
                                 <property name="fill">False</property>
@@ -1972,16 +2118,16 @@ Version 1</property>
                               </packing>
                             </child>
                             <child>
-                              <widget class="GtkLabel" id="progress_label">
+                              <object class="GtkLabel" id="progress_label">
                                 <property name="visible">True</property>
                                 <property name="xalign">0</property>
                                 <property name="wrap">True</property>
-                              </widget>
+                              </object>
                               <packing>
                                 <property name="position">1</property>
                               </packing>
                             </child>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="left_attach">1</property>
                             <property name="right_attach">2</property>
@@ -1993,13 +2139,13 @@ Version 1</property>
                           </packing>
                         </child>
                         <child>
-                          <widget class="GtkCheckButton" id="show_password_checkbutton">
+                          <object class="GtkCheckButton" id="show_password_checkbutton">
                             <property name="label" translatable="no">Show it</property>
                             <property name="visible">True</property>
                             <property name="can_focus">True</property>
                             <property name="receives_default">False</property>
                             <property name="draw_indicator">True</property>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="left_attach">1</property>
                             <property name="right_attach">2</property>
@@ -2013,21 +2159,21 @@ Version 1</property>
                         <child>
                           <placeholder/>
                         </child>
-                      </widget>
+                      </object>
                     </child>
-                  </widget>
+                  </object>
                   <packing>
                     <property name="expand">False</property>
                     <property name="position">2</property>
                   </packing>
                 </child>
-              </widget>
+              </object>
               <packing>
                 <property name="expand">False</property>
                 <property name="position">1</property>
               </packing>
             </child>
-          </widget>
+          </object>
           <packing>
             <property name="expand">False</property>
             <property name="fill">False</property>
@@ -2035,18 +2181,17 @@ Version 1</property>
           </packing>
         </child>
         <child internal-child="action_area">
-          <widget class="GtkHButtonBox" id="dialog-action_area4">
+          <object class="GtkHButtonBox" id="dialog-action_area4">
             <property name="visible">True</property>
             <property name="layout_style">end</property>
             <child>
-              <widget class="GtkButton" id="unlock_cancel_button">
+              <object class="GtkButton" id="unlock_cancel_button">
                 <property name="label">gtk-cancel</property>
-                <property name="response_id">-6</property>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="receives_default">True</property>
                 <property name="use_stock">True</property>
-              </widget>
+              </object>
               <packing>
                 <property name="expand">False</property>
                 <property name="fill">False</property>
@@ -2054,30 +2199,33 @@ Version 1</property>
               </packing>
             </child>
             <child>
-              <widget class="GtkButton" id="unlock_button">
+              <object class="GtkButton" id="unlock_button">
                 <property name="label" translatable="yes">_Unlock</property>
-                <property name="response_id">-5</property>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="can_default">True</property>
                 <property name="has_default">True</property>
                 <property name="receives_default">True</property>
                 <property name="use_underline">True</property>
-              </widget>
+              </object>
               <packing>
                 <property name="expand">False</property>
                 <property name="fill">False</property>
                 <property name="position">1</property>
               </packing>
             </child>
-          </widget>
+          </object>
           <packing>
             <property name="expand">False</property>
             <property name="pack_type">end</property>
             <property name="position">0</property>
           </packing>
         </child>
-      </widget>
+      </object>
     </child>
-  </widget>
-</glade-interface>
+    <action-widgets>
+      <action-widget response="-6">unlock_cancel_button</action-widget>
+      <action-widget response="-5">unlock_button</action-widget>
+    </action-widgets>
+  </object>
+</interface>
diff --git a/src/connection-editor/Makefile.am b/src/connection-editor/Makefile.am
index a4d04a7..139879f 100644
--- a/src/connection-editor/Makefile.am
+++ b/src/connection-editor/Makefile.am
@@ -4,7 +4,7 @@ nm_connection_editor_CPPFLAGS = \
 	$(GTK_CFLAGS) \
 	$(NMA_CFLAGS) \
 	-DICONDIR=\""$(datadir)/icons"\" \
-	-DGLADEDIR=\""$(gladedir)"\" \
+	-DUIDIR=\""$(uidir)"\" \
 	-DBINDIR=\""$(bindir)"\" \
 	-DSYSCONFDIR=\""$(sysconfdir)"\" \
 	-DLIBDIR=\""$(libdir)"\" \
@@ -68,22 +68,22 @@ nm_connection_editor_LDADD = \
 	$(NMA_LIBS) \
 	-lm
 
-gladedir = $(datadir)/nm-applet
-glade_DATA = \
-	nm-connection-editor.glade \
-	ce-page-wired.glade \
-	ce-page-wireless.glade \
-	ce-page-wireless-security.glade \
-	ce-page-ip4.glade \
-	ce-page-ip6.glade \
-	ce-page-dsl.glade \
-	ce-page-mobile.glade \
-	ce-page-ppp.glade \
-	ce-vpn-wizard.glade
+uidir = $(datadir)/nm-applet
+ui_DATA = \
+	nm-connection-editor.ui \
+	ce-page-wired.ui \
+	ce-page-wireless.ui \
+	ce-page-wireless-security.ui \
+	ce-page-ip4.ui \
+	ce-page-ip6.ui \
+	ce-page-dsl.ui \
+	ce-page-mobile.ui \
+	ce-page-ppp.ui \
+	ce-vpn-wizard.ui
 
 BUILT_SOURCES = nm-connection-editor-service-glue.h
 
-CLEANFILES = *.bak *.gladep $(BUILT_SOURCES)
+CLEANFILES = *.bak $(BUILT_SOURCES)
 
-EXTRA_DIST = $(glade_DATA) nm-connection-editor-service.xml
+EXTRA_DIST = $(ui_DATA) nm-connection-editor-service.xml
 
diff --git a/src/connection-editor/ce-page-dsl.glade b/src/connection-editor/ce-page-dsl.ui
similarity index 85%
rename from src/connection-editor/ce-page-dsl.glade
rename to src/connection-editor/ce-page-dsl.ui
index f0298ac..e1cc185 100644
--- a/src/connection-editor/ce-page-dsl.glade
+++ b/src/connection-editor/ce-page-dsl.ui
@@ -1,11 +1,11 @@
 <?xml version="1.0"?>
-<glade-interface>
-  <!-- interface-requires gtk+ 2.16 -->
+<interface>
+  <requires lib="gtk+" version="2.16"/>
   <!-- interface-naming-policy toplevel-contextual -->
-  <widget class="GtkWindow" id="dsl_page_widget">
+  <object class="GtkWindow" id="dsl_page_widget">
     <property name="title" translatable="yes">window1</property>
     <child>
-      <widget class="GtkTable" id="DslPage">
+      <object class="GtkTable" id="DslPage">
         <property name="visible">True</property>
         <property name="border_width">12</property>
         <property name="n_rows">4</property>
@@ -13,23 +13,23 @@
         <property name="column_spacing">12</property>
         <property name="row_spacing">6</property>
         <child>
-          <widget class="GtkLabel" id="label24">
+          <object class="GtkLabel" id="label24">
             <property name="visible">True</property>
             <property name="xalign">0</property>
             <property name="label" translatable="yes">_Username:</property>
             <property name="use_underline">True</property>
             <property name="mnemonic_widget">dsl_username</property>
-          </widget>
+          </object>
           <packing>
             <property name="x_options">GTK_FILL</property>
             <property name="y_options"></property>
           </packing>
         </child>
         <child>
-          <widget class="GtkEntry" id="dsl_username">
+          <object class="GtkEntry" id="dsl_username">
             <property name="visible">True</property>
             <property name="can_focus">True</property>
-          </widget>
+          </object>
           <packing>
             <property name="left_attach">1</property>
             <property name="right_attach">2</property>
@@ -37,10 +37,10 @@
           </packing>
         </child>
         <child>
-          <widget class="GtkEntry" id="dsl_service">
+          <object class="GtkEntry" id="dsl_service">
             <property name="visible">True</property>
             <property name="can_focus">True</property>
-          </widget>
+          </object>
           <packing>
             <property name="left_attach">1</property>
             <property name="right_attach">2</property>
@@ -50,13 +50,13 @@
           </packing>
         </child>
         <child>
-          <widget class="GtkLabel" id="label26">
+          <object class="GtkLabel" id="label26">
             <property name="visible">True</property>
             <property name="xalign">0</property>
             <property name="label" translatable="yes">_Service:</property>
             <property name="use_underline">True</property>
             <property name="mnemonic_widget">dsl_service</property>
-          </widget>
+          </object>
           <packing>
             <property name="top_attach">1</property>
             <property name="bottom_attach">2</property>
@@ -65,14 +65,14 @@
           </packing>
         </child>
         <child>
-          <widget class="GtkCheckButton" id="dsl_show_password">
+          <object class="GtkCheckButton" id="dsl_show_password">
             <property name="label" translatable="yes">Sho_w password</property>
             <property name="visible">True</property>
             <property name="can_focus">True</property>
             <property name="receives_default">False</property>
             <property name="use_underline">True</property>
             <property name="draw_indicator">True</property>
-          </widget>
+          </object>
           <packing>
             <property name="left_attach">1</property>
             <property name="right_attach">2</property>
@@ -83,11 +83,11 @@
           </packing>
         </child>
         <child>
-          <widget class="GtkEntry" id="dsl_password">
+          <object class="GtkEntry" id="dsl_password">
             <property name="visible">True</property>
             <property name="can_focus">True</property>
             <property name="visibility">False</property>
-          </widget>
+          </object>
           <packing>
             <property name="left_attach">1</property>
             <property name="right_attach">2</property>
@@ -97,13 +97,13 @@
           </packing>
         </child>
         <child>
-          <widget class="GtkLabel" id="label25">
+          <object class="GtkLabel" id="label25">
             <property name="visible">True</property>
             <property name="xalign">0</property>
             <property name="label" translatable="yes">_Password:</property>
             <property name="use_underline">True</property>
             <property name="mnemonic_widget">dsl_password</property>
-          </widget>
+          </object>
           <packing>
             <property name="top_attach">2</property>
             <property name="bottom_attach">3</property>
@@ -112,10 +112,10 @@
           </packing>
         </child>
         <child>
-          <widget class="GtkLabel" id="label27">
+          <object class="GtkLabel" id="label27">
             <property name="visible">True</property>
             <property name="xalign">0</property>
-          </widget>
+          </object>
           <packing>
             <property name="top_attach">3</property>
             <property name="bottom_attach">4</property>
@@ -123,7 +123,7 @@
             <property name="y_options"></property>
           </packing>
         </child>
-      </widget>
+      </object>
     </child>
-  </widget>
-</glade-interface>
+  </object>
+</interface>
diff --git a/src/connection-editor/ce-page-ip4.glade b/src/connection-editor/ce-page-ip4.ui
similarity index 77%
rename from src/connection-editor/ce-page-ip4.glade
rename to src/connection-editor/ce-page-ip4.ui
index 776e86e..c0b09de 100644
--- a/src/connection-editor/ce-page-ip4.glade
+++ b/src/connection-editor/ce-page-ip4.ui
@@ -1,26 +1,49 @@
 <?xml version="1.0"?>
-<glade-interface>
-  <!-- interface-requires gtk+ 2.16 -->
+<interface>
+  <requires lib="gtk+" version="2.16"/>
   <!-- interface-naming-policy toplevel-contextual -->
-  <widget class="GtkWindow" id="ip4_page_widget">
+  <object class="GtkListStore" id="model1">
+    <columns>
+      <!-- column-name gchararray -->
+      <column type="gchararray"/>
+    </columns>
+    <data>
+      <row>
+        <col id="0" translatable="yes">Automatic</col>
+      </row>
+      <row>
+        <col id="0" translatable="yes">Automatic with manual DNS settings</col>
+      </row>
+      <row>
+        <col id="0" translatable="yes">Manual</col>
+      </row>
+      <row>
+        <col id="0" translatable="yes">Link-Local</col>
+      </row>
+      <row>
+        <col id="0" translatable="yes">Shared to other computers</col>
+      </row>
+    </data>
+  </object>
+  <object class="GtkWindow" id="ip4_page_widget">
     <property name="title" translatable="yes">window3</property>
     <child>
-      <widget class="GtkVBox" id="IP4Page">
+      <object class="GtkVBox" id="IP4Page">
         <property name="visible">True</property>
         <property name="border_width">12</property>
         <property name="orientation">vertical</property>
         <property name="spacing">18</property>
         <child>
-          <widget class="GtkHBox" id="hbox1">
+          <object class="GtkHBox" id="hbox1">
             <property name="visible">True</property>
             <property name="spacing">12</property>
             <child>
-              <widget class="GtkLabel" id="label38">
+              <object class="GtkLabel" id="label38">
                 <property name="visible">True</property>
                 <property name="label" translatable="yes">_Method:</property>
                 <property name="use_underline">True</property>
                 <property name="mnemonic_widget">ip4_method</property>
-              </widget>
+              </object>
               <packing>
                 <property name="expand">False</property>
                 <property name="fill">False</property>
@@ -28,20 +51,22 @@
               </packing>
             </child>
             <child>
-              <widget class="GtkComboBox" id="ip4_method">
+              <object class="GtkComboBox" id="ip4_method">
                 <property name="visible">True</property>
-                <property name="items" translatable="yes">Automatic
-Automatic with manual DNS settings
-Manual
-Link-Local
-Shared to other computers</property>
-              </widget>
+                <property name="model">model1</property>
+                <child>
+                  <object class="GtkCellRendererText" id="renderer1"/>
+                  <attributes>
+                    <attribute name="text">0</attribute>
+                  </attributes>
+                </child>
+              </object>
               <packing>
                 <property name="pack_type">end</property>
                 <property name="position">1</property>
               </packing>
             </child>
-          </widget>
+          </object>
           <packing>
             <property name="expand">False</property>
             <property name="fill">False</property>
@@ -49,17 +74,17 @@ Shared to other computers</property>
           </packing>
         </child>
         <child>
-          <widget class="GtkVBox" id="ip4_addresses_box">
+          <object class="GtkVBox" id="ip4_addresses_box">
             <property name="visible">True</property>
             <property name="orientation">vertical</property>
             <property name="spacing">6</property>
             <child>
-              <widget class="GtkLabel" id="ip4_addr_label">
+              <object class="GtkLabel" id="ip4_addr_label">
                 <property name="visible">True</property>
                 <property name="xalign">0</property>
                 <property name="label" translatable="yes">&lt;b&gt;Addresses&lt;/b&gt;</property>
                 <property name="use_markup">True</property>
-              </widget>
+              </object>
               <packing>
                 <property name="expand">False</property>
                 <property name="fill">False</property>
@@ -67,54 +92,54 @@ Shared to other computers</property>
               </packing>
             </child>
             <child>
-              <widget class="GtkAlignment" id="alignment2">
+              <object class="GtkAlignment" id="alignment2">
                 <property name="visible">True</property>
                 <property name="left_padding">12</property>
                 <child>
-                  <widget class="GtkVBox" id="vbox1">
+                  <object class="GtkVBox" id="vbox1">
                     <property name="visible">True</property>
                     <property name="orientation">vertical</property>
                     <property name="spacing">6</property>
                     <child>
-                      <widget class="GtkHBox" id="hbox2">
+                      <object class="GtkHBox" id="hbox2">
                         <property name="visible">True</property>
                         <property name="spacing">6</property>
                         <child>
-                          <widget class="GtkScrolledWindow" id="scrolledwindow1">
+                          <object class="GtkScrolledWindow" id="scrolledwindow1">
                             <property name="visible">True</property>
                             <property name="can_focus">True</property>
                             <property name="hscrollbar_policy">never</property>
                             <property name="vscrollbar_policy">automatic</property>
                             <property name="shadow_type">in</property>
                             <child>
-                              <widget class="GtkTreeView" id="ip4_addresses">
+                              <object class="GtkTreeView" id="ip4_addresses">
                                 <property name="height_request">100</property>
                                 <property name="visible">True</property>
                                 <property name="can_focus">True</property>
                                 <property name="has_tooltip">True</property>
-                                <property name="tooltip" translatable="yes">IP addresses identify your computer on the network.  Click the "Add" button to add an IP address.</property>
+                                <property name="tooltip_text" translatable="yes">IP addresses identify your computer on the network.  Click the "Add" button to add an IP address.</property>
                                 <property name="rules_hint">True</property>
-                              </widget>
+                              </object>
                             </child>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="position">0</property>
                           </packing>
                         </child>
                         <child>
-                          <widget class="GtkVButtonBox" id="vbuttonbox1">
+                          <object class="GtkVButtonBox" id="vbuttonbox1">
                             <property name="visible">True</property>
                             <property name="spacing">6</property>
                             <property name="layout_style">start</property>
                             <child>
-                              <widget class="GtkButton" id="ip4_addr_add_button">
+                              <object class="GtkButton" id="ip4_addr_add_button">
                                 <property name="label">gtk-add</property>
                                 <property name="visible">True</property>
                                 <property name="can_focus">True</property>
                                 <property name="can_default">True</property>
                                 <property name="receives_default">True</property>
                                 <property name="use_stock">True</property>
-                              </widget>
+                              </object>
                               <packing>
                                 <property name="expand">False</property>
                                 <property name="fill">False</property>
@@ -122,46 +147,46 @@ Shared to other computers</property>
                               </packing>
                             </child>
                             <child>
-                              <widget class="GtkButton" id="ip4_addr_delete_button">
+                              <object class="GtkButton" id="ip4_addr_delete_button">
                                 <property name="label">gtk-delete</property>
                                 <property name="visible">True</property>
                                 <property name="can_focus">True</property>
                                 <property name="can_default">True</property>
                                 <property name="receives_default">True</property>
                                 <property name="use_stock">True</property>
-                              </widget>
+                              </object>
                               <packing>
                                 <property name="expand">False</property>
                                 <property name="fill">False</property>
                                 <property name="position">1</property>
                               </packing>
                             </child>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="expand">False</property>
                             <property name="fill">False</property>
                             <property name="position">1</property>
                           </packing>
                         </child>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="position">0</property>
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkTable" id="table8">
+                      <object class="GtkTable" id="table8">
                         <property name="visible">True</property>
                         <property name="n_rows">3</property>
                         <property name="n_columns">2</property>
                         <property name="column_spacing">12</property>
                         <property name="row_spacing">6</property>
                         <child>
-                          <widget class="GtkEntry" id="ip4_dhcp_client_id_entry">
+                          <object class="GtkEntry" id="ip4_dhcp_client_id_entry">
                             <property name="visible">True</property>
                             <property name="can_focus">True</property>
-                            <property name="tooltip" translatable="yes">The DHCP client identifier allows the network administrator to customize your computer's configuration.  If you wish to use a DHCP client identifier, enter it here.</property>
+                            <property name="tooltip_text" translatable="yes">The DHCP client identifier allows the network administrator to customize your computer's configuration.  If you wish to use a DHCP client identifier, enter it here.</property>
                             <property name="invisible_char">&#x25CF;</property>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="left_attach">1</property>
                             <property name="right_attach">2</property>
@@ -171,12 +196,12 @@ Shared to other computers</property>
                           </packing>
                         </child>
                         <child>
-                          <widget class="GtkEntry" id="ip4_dns_searches_entry">
+                          <object class="GtkEntry" id="ip4_dns_searches_entry">
                             <property name="visible">True</property>
                             <property name="can_focus">True</property>
-                            <property name="tooltip" translatable="yes">Domains used when resolving host names. Use commas to separate multiple domains.</property>
+                            <property name="tooltip_text" translatable="yes">Domains used when resolving host names. Use commas to separate multiple domains.</property>
                             <property name="invisible_char">&#x25CF;</property>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="left_attach">1</property>
                             <property name="right_attach">2</property>
@@ -186,13 +211,13 @@ Shared to other computers</property>
                           </packing>
                         </child>
                         <child>
-                          <widget class="GtkLabel" id="ip4_dhcp_client_id_label">
+                          <object class="GtkLabel" id="ip4_dhcp_client_id_label">
                             <property name="visible">True</property>
                             <property name="xalign">0</property>
                             <property name="label" translatable="yes">D_HCP client ID:</property>
                             <property name="use_underline">True</property>
                             <property name="mnemonic_widget">ip4_dhcp_client_id_entry</property>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="top_attach">2</property>
                             <property name="bottom_attach">3</property>
@@ -201,13 +226,13 @@ Shared to other computers</property>
                           </packing>
                         </child>
                         <child>
-                          <widget class="GtkLabel" id="ip4_dns_searches_label">
+                          <object class="GtkLabel" id="ip4_dns_searches_label">
                             <property name="visible">True</property>
                             <property name="xalign">0</property>
                             <property name="label" translatable="yes">_Search domains:</property>
                             <property name="use_underline">True</property>
                             <property name="mnemonic_widget">ip4_dns_searches_entry</property>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="top_attach">1</property>
                             <property name="bottom_attach">2</property>
@@ -216,32 +241,32 @@ Shared to other computers</property>
                           </packing>
                         </child>
                         <child>
-                          <widget class="GtkLabel" id="ip4_dns_servers_label">
+                          <object class="GtkLabel" id="ip4_dns_servers_label">
                             <property name="visible">True</property>
                             <property name="xalign">0</property>
                             <property name="label" translatable="yes">_DNS servers:</property>
                             <property name="use_underline">True</property>
                             <property name="mnemonic_widget">ip4_dns_servers_entry</property>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="x_options">GTK_FILL</property>
                             <property name="y_options"></property>
                           </packing>
                         </child>
                         <child>
-                          <widget class="GtkEntry" id="ip4_dns_servers_entry">
+                          <object class="GtkEntry" id="ip4_dns_servers_entry">
                             <property name="visible">True</property>
                             <property name="can_focus">True</property>
-                            <property name="tooltip" translatable="yes">IP addresses of domain name servers used to resolve host names. Use commas to separate multiple domain name server addresses.</property>
+                            <property name="tooltip_text" translatable="yes">IP addresses of domain name servers used to resolve host names. Use commas to separate multiple domain name server addresses.</property>
                             <property name="invisible_char">&#x25CF;</property>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="left_attach">1</property>
                             <property name="right_attach">2</property>
                             <property name="y_options"></property>
                           </packing>
                         </child>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="expand">False</property>
                         <property name="fill">False</property>
@@ -249,55 +274,55 @@ Shared to other computers</property>
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkCheckButton" id="ip4_required_checkbutton">
+                      <object class="GtkCheckButton" id="ip4_required_checkbutton">
                         <property name="label" translatable="yes">Require IPv4 addressing for this connection to complete</property>
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
                         <property name="receives_default">False</property>
-                        <property name="tooltip" translatable="yes">When connecting to IPv6-capable networks, allows the connection to complete if IPv4 configuration fails but IPv6 configuration succeeds.</property>
+                        <property name="tooltip_text" translatable="yes">When connecting to IPv6-capable networks, allows the connection to complete if IPv4 configuration fails but IPv6 configuration succeeds.</property>
                         <property name="draw_indicator">True</property>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="expand">False</property>
                         <property name="position">2</property>
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkHButtonBox" id="hbuttonbox1">
+                      <object class="GtkHButtonBox" id="hbuttonbox1">
                         <property name="visible">True</property>
                         <property name="layout_style">end</property>
                         <child>
-                          <widget class="GtkButton" id="ip4_routes_button">
+                          <object class="GtkButton" id="ip4_routes_button">
                             <property name="visible">True</property>
                             <property name="can_focus">True</property>
                             <property name="receives_default">True</property>
                             <child>
-                              <widget class="GtkHBox" id="hbox4">
+                              <object class="GtkHBox" id="hbox4">
                                 <property name="visible">True</property>
                                 <property name="spacing">3</property>
                                 <child>
-                                  <widget class="GtkImage" id="image1">
+                                  <object class="GtkImage" id="image1">
                                     <property name="visible">True</property>
-                                  </widget>
+                                  </object>
                                   <packing>
                                     <property name="expand">False</property>
                                     <property name="position">0</property>
                                   </packing>
                                 </child>
                                 <child>
-                                  <widget class="GtkLabel" id="label1">
+                                  <object class="GtkLabel" id="label1">
                                     <property name="visible">True</property>
                                     <property name="label" translatable="yes">_Routesâ?¦</property>
                                     <property name="use_underline">True</property>
-                                  </widget>
+                                  </object>
                                   <packing>
                                     <property name="expand">False</property>
                                     <property name="position">1</property>
                                   </packing>
                                 </child>
-                              </widget>
+                              </object>
                             </child>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="expand">False</property>
                             <property name="fill">False</property>
@@ -306,29 +331,29 @@ Shared to other computers</property>
                             <property name="position">0</property>
                           </packing>
                         </child>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="expand">False</property>
                         <property name="fill">False</property>
                         <property name="position">3</property>
                       </packing>
                     </child>
-                  </widget>
+                  </object>
                 </child>
-              </widget>
+              </object>
               <packing>
                 <property name="position">1</property>
               </packing>
             </child>
-          </widget>
+          </object>
           <packing>
             <property name="position">1</property>
           </packing>
         </child>
-      </widget>
+      </object>
     </child>
-  </widget>
-  <widget class="GtkDialog" id="ip4_routes_dialog">
+  </object>
+  <object class="GtkDialog" id="ip4_routes_dialog">
     <property name="width_request">450</property>
     <property name="height_request">250</property>
     <property name="border_width">5</property>
@@ -338,56 +363,56 @@ Shared to other computers</property>
     <property name="type_hint">dialog</property>
     <property name="has_separator">False</property>
     <child internal-child="vbox">
-      <widget class="GtkVBox" id="dialog-vbox1">
+      <object class="GtkVBox" id="dialog-vbox1">
         <property name="visible">True</property>
         <property name="orientation">vertical</property>
         <property name="spacing">2</property>
         <child>
-          <widget class="GtkVBox" id="vbox2">
+          <object class="GtkVBox" id="vbox2">
             <property name="visible">True</property>
             <property name="border_width">5</property>
             <property name="orientation">vertical</property>
             <property name="spacing">6</property>
             <child>
-              <widget class="GtkHBox" id="hbox5">
+              <object class="GtkHBox" id="hbox5">
                 <property name="visible">True</property>
                 <property name="spacing">6</property>
                 <child>
-                  <widget class="GtkScrolledWindow" id="scrolledwindow2">
+                  <object class="GtkScrolledWindow" id="scrolledwindow2">
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
                     <property name="hscrollbar_policy">never</property>
                     <property name="vscrollbar_policy">automatic</property>
                     <property name="shadow_type">in</property>
                     <child>
-                      <widget class="GtkTreeView" id="ip4_routes">
+                      <object class="GtkTreeView" id="ip4_routes">
                         <property name="height_request">100</property>
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
                         <property name="has_tooltip">True</property>
-                        <property name="tooltip" translatable="yes">IP addresses identify your computer on the network.  Click the "Add" button to add an IP address.</property>
+                        <property name="tooltip_text" translatable="yes">IP addresses identify your computer on the network.  Click the "Add" button to add an IP address.</property>
                         <property name="rules_hint">True</property>
-                      </widget>
+                      </object>
                     </child>
-                  </widget>
+                  </object>
                   <packing>
                     <property name="position">0</property>
                   </packing>
                 </child>
                 <child>
-                  <widget class="GtkVButtonBox" id="vbuttonbox2">
+                  <object class="GtkVButtonBox" id="vbuttonbox2">
                     <property name="visible">True</property>
                     <property name="spacing">6</property>
                     <property name="layout_style">start</property>
                     <child>
-                      <widget class="GtkButton" id="ip4_route_add_button">
+                      <object class="GtkButton" id="ip4_route_add_button">
                         <property name="label">gtk-add</property>
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
                         <property name="can_default">True</property>
                         <property name="receives_default">True</property>
                         <property name="use_stock">True</property>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="expand">False</property>
                         <property name="fill">False</property>
@@ -395,80 +420,79 @@ Shared to other computers</property>
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkButton" id="ip4_route_delete_button">
+                      <object class="GtkButton" id="ip4_route_delete_button">
                         <property name="label">gtk-delete</property>
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
                         <property name="can_default">True</property>
                         <property name="receives_default">True</property>
                         <property name="use_stock">True</property>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="expand">False</property>
                         <property name="fill">False</property>
                         <property name="position">1</property>
                       </packing>
                     </child>
-                  </widget>
+                  </object>
                   <packing>
                     <property name="expand">False</property>
                     <property name="fill">False</property>
                     <property name="position">1</property>
                   </packing>
                 </child>
-              </widget>
+              </object>
               <packing>
                 <property name="position">0</property>
               </packing>
             </child>
             <child>
-              <widget class="GtkCheckButton" id="ip4_ignore_auto_routes">
+              <object class="GtkCheckButton" id="ip4_ignore_auto_routes">
                 <property name="label" translatable="yes">Ig_nore automatically obtained routes</property>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="receives_default">False</property>
                 <property name="use_underline">True</property>
                 <property name="draw_indicator">True</property>
-              </widget>
+              </object>
               <packing>
                 <property name="expand">False</property>
                 <property name="position">1</property>
               </packing>
             </child>
             <child>
-              <widget class="GtkCheckButton" id="ip4_never_default">
+              <object class="GtkCheckButton" id="ip4_never_default">
                 <property name="label" translatable="yes">Use this c_onnection only for resources on its network</property>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="receives_default">False</property>
                 <property name="has_tooltip">True</property>
-                <property name="tooltip" translatable="yes">If enabled, this connection will never be used as the default network connection.</property>
+                <property name="tooltip_text" translatable="yes">If enabled, this connection will never be used as the default network connection.</property>
                 <property name="use_underline">True</property>
                 <property name="draw_indicator">True</property>
-              </widget>
+              </object>
               <packing>
                 <property name="expand">False</property>
                 <property name="position">2</property>
               </packing>
             </child>
-          </widget>
+          </object>
           <packing>
             <property name="position">1</property>
           </packing>
         </child>
         <child internal-child="action_area">
-          <widget class="GtkHButtonBox" id="dialog-action_area1">
+          <object class="GtkHButtonBox" id="dialog-action_area1">
             <property name="visible">True</property>
             <property name="layout_style">end</property>
             <child>
-              <widget class="GtkButton" id="cancel_button">
+              <object class="GtkButton" id="cancel_button">
                 <property name="label">gtk-cancel</property>
-                <property name="response_id">-6</property>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="receives_default">False</property>
                 <property name="use_stock">True</property>
-              </widget>
+              </object>
               <packing>
                 <property name="expand">False</property>
                 <property name="fill">False</property>
@@ -476,28 +500,31 @@ Shared to other computers</property>
               </packing>
             </child>
             <child>
-              <widget class="GtkButton" id="ok_button">
+              <object class="GtkButton" id="ok_button">
                 <property name="label">gtk-ok</property>
-                <property name="response_id">-5</property>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="receives_default">False</property>
                 <property name="use_stock">True</property>
-              </widget>
+              </object>
               <packing>
                 <property name="expand">False</property>
                 <property name="fill">False</property>
                 <property name="position">1</property>
               </packing>
             </child>
-          </widget>
+          </object>
           <packing>
             <property name="expand">False</property>
             <property name="pack_type">end</property>
             <property name="position">0</property>
           </packing>
         </child>
-      </widget>
+      </object>
     </child>
-  </widget>
-</glade-interface>
+    <action-widgets>
+      <action-widget response="-6">cancel_button</action-widget>
+      <action-widget response="-5">ok_button</action-widget>
+    </action-widgets>
+  </object>
+</interface>
diff --git a/src/connection-editor/ce-page-ip6.glade b/src/connection-editor/ce-page-ip6.ui
similarity index 77%
rename from src/connection-editor/ce-page-ip6.glade
rename to src/connection-editor/ce-page-ip6.ui
index ab8e7c7..c9ca05a 100644
--- a/src/connection-editor/ce-page-ip6.glade
+++ b/src/connection-editor/ce-page-ip6.ui
@@ -1,26 +1,49 @@
 <?xml version="1.0"?>
-<glade-interface>
-  <!-- interface-requires gtk+ 2.16 -->
+<interface>
+  <requires lib="gtk+" version="2.16"/>
   <!-- interface-naming-policy toplevel-contextual -->
-  <widget class="GtkWindow" id="ip6_page_widget">
+  <object class="GtkListStore" id="model1">
+    <columns>
+      <!-- column-name gchararray -->
+      <column type="gchararray"/>
+    </columns>
+    <data>
+      <row>
+        <col id="0" translatable="yes">Automatic</col>
+      </row>
+      <row>
+        <col id="0" translatable="yes">Automatic with manual DNS settings</col>
+      </row>
+      <row>
+        <col id="0" translatable="yes">Manual</col>
+      </row>
+      <row>
+        <col id="0" translatable="yes">Link-Local</col>
+      </row>
+      <row>
+        <col id="0" translatable="yes">Shared to other computers</col>
+      </row>
+    </data>
+  </object>
+  <object class="GtkWindow" id="ip6_page_widget">
     <property name="title" translatable="yes">window3</property>
     <child>
-      <widget class="GtkVBox" id="IP6Page">
+      <object class="GtkVBox" id="IP6Page">
         <property name="visible">True</property>
         <property name="border_width">12</property>
         <property name="orientation">vertical</property>
         <property name="spacing">18</property>
         <child>
-          <widget class="GtkHBox" id="hbox1">
+          <object class="GtkHBox" id="hbox1">
             <property name="visible">True</property>
             <property name="spacing">12</property>
             <child>
-              <widget class="GtkLabel" id="label38">
+              <object class="GtkLabel" id="label38">
                 <property name="visible">True</property>
                 <property name="label" translatable="yes">_Method:</property>
                 <property name="use_underline">True</property>
                 <property name="mnemonic_widget">ip6_method</property>
-              </widget>
+              </object>
               <packing>
                 <property name="expand">False</property>
                 <property name="fill">False</property>
@@ -28,20 +51,22 @@
               </packing>
             </child>
             <child>
-              <widget class="GtkComboBox" id="ip6_method">
+              <object class="GtkComboBox" id="ip6_method">
                 <property name="visible">True</property>
-                <property name="items" translatable="yes">Automatic
-Automatic with manual DNS settings
-Manual
-Link-Local
-Shared to other computers</property>
-              </widget>
+                <property name="model">model1</property>
+                <child>
+                  <object class="GtkCellRendererText" id="renderer1"/>
+                  <attributes>
+                    <attribute name="text">0</attribute>
+                  </attributes>
+                </child>
+              </object>
               <packing>
                 <property name="pack_type">end</property>
                 <property name="position">1</property>
               </packing>
             </child>
-          </widget>
+          </object>
           <packing>
             <property name="expand">False</property>
             <property name="fill">False</property>
@@ -49,17 +74,17 @@ Shared to other computers</property>
           </packing>
         </child>
         <child>
-          <widget class="GtkVBox" id="ip6_addresses_box">
+          <object class="GtkVBox" id="ip6_addresses_box">
             <property name="visible">True</property>
             <property name="orientation">vertical</property>
             <property name="spacing">6</property>
             <child>
-              <widget class="GtkLabel" id="ip6_addr_label">
+              <object class="GtkLabel" id="ip6_addr_label">
                 <property name="visible">True</property>
                 <property name="xalign">0</property>
                 <property name="label" translatable="yes">&lt;b&gt;Addresses&lt;/b&gt;</property>
                 <property name="use_markup">True</property>
-              </widget>
+              </object>
               <packing>
                 <property name="expand">False</property>
                 <property name="fill">False</property>
@@ -67,55 +92,55 @@ Shared to other computers</property>
               </packing>
             </child>
             <child>
-              <widget class="GtkAlignment" id="alignment2">
+              <object class="GtkAlignment" id="alignment2">
                 <property name="visible">True</property>
                 <property name="left_padding">12</property>
                 <child>
-                  <widget class="GtkVBox" id="vbox1">
+                  <object class="GtkVBox" id="vbox1">
                     <property name="visible">True</property>
                     <property name="orientation">vertical</property>
                     <property name="spacing">6</property>
                     <child>
-                      <widget class="GtkHBox" id="hbox2">
+                      <object class="GtkHBox" id="hbox2">
                         <property name="visible">True</property>
                         <property name="spacing">6</property>
                         <child>
-                          <widget class="GtkScrolledWindow" id="scrolledwindow1">
+                          <object class="GtkScrolledWindow" id="scrolledwindow1">
                             <property name="visible">True</property>
                             <property name="can_focus">True</property>
                             <property name="hscrollbar_policy">never</property>
                             <property name="vscrollbar_policy">automatic</property>
                             <property name="shadow_type">in</property>
                             <child>
-                              <widget class="GtkTreeView" id="ip6_addresses">
+                              <object class="GtkTreeView" id="ip6_addresses">
                                 <property name="height_request">100</property>
                                 <property name="visible">True</property>
                                 <property name="can_focus">True</property>
                                 <property name="has_tooltip">True</property>
-                                <property name="tooltip" translatable="yes">IP addresses identify your computer on the network.  Click the "Add" button to add an IP address.</property>
+                                <property name="tooltip_text" translatable="yes">IP addresses identify your computer on the network.  Click the "Add" button to add an IP address.</property>
                                 <property name="rules_hint">True</property>
-                              </widget>
+                              </object>
                             </child>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="position">0</property>
                           </packing>
                         </child>
                         <child>
-                          <widget class="GtkVButtonBox" id="vbuttonbox1">
+                          <object class="GtkVButtonBox" id="vbuttonbox1">
                             <property name="visible">True</property>
                             <property name="orientation">vertical</property>
                             <property name="spacing">6</property>
                             <property name="layout_style">start</property>
                             <child>
-                              <widget class="GtkButton" id="ip6_addr_add_button">
+                              <object class="GtkButton" id="ip6_addr_add_button">
                                 <property name="label">gtk-add</property>
                                 <property name="visible">True</property>
                                 <property name="can_focus">True</property>
                                 <property name="can_default">True</property>
                                 <property name="receives_default">True</property>
                                 <property name="use_stock">True</property>
-                              </widget>
+                              </object>
                               <packing>
                                 <property name="expand">False</property>
                                 <property name="fill">False</property>
@@ -123,46 +148,46 @@ Shared to other computers</property>
                               </packing>
                             </child>
                             <child>
-                              <widget class="GtkButton" id="ip6_addr_delete_button">
+                              <object class="GtkButton" id="ip6_addr_delete_button">
                                 <property name="label">gtk-delete</property>
                                 <property name="visible">True</property>
                                 <property name="can_focus">True</property>
                                 <property name="can_default">True</property>
                                 <property name="receives_default">True</property>
                                 <property name="use_stock">True</property>
-                              </widget>
+                              </object>
                               <packing>
                                 <property name="expand">False</property>
                                 <property name="fill">False</property>
                                 <property name="position">1</property>
                               </packing>
                             </child>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="expand">False</property>
                             <property name="fill">False</property>
                             <property name="position">1</property>
                           </packing>
                         </child>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="position">0</property>
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkTable" id="table8">
+                      <object class="GtkTable" id="table8">
                         <property name="visible">True</property>
                         <property name="n_rows">2</property>
                         <property name="n_columns">2</property>
                         <property name="column_spacing">12</property>
                         <property name="row_spacing">6</property>
                         <child>
-                          <widget class="GtkEntry" id="ip6_dns_searches_entry">
+                          <object class="GtkEntry" id="ip6_dns_searches_entry">
                             <property name="visible">True</property>
                             <property name="can_focus">True</property>
-                            <property name="tooltip" translatable="yes">Domains used when resolving host names. Use commas to separate multiple domains.</property>
+                            <property name="tooltip_text" translatable="yes">Domains used when resolving host names. Use commas to separate multiple domains.</property>
                             <property name="invisible_char">&#x25CF;</property>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="left_attach">1</property>
                             <property name="right_attach">2</property>
@@ -172,13 +197,13 @@ Shared to other computers</property>
                           </packing>
                         </child>
                         <child>
-                          <widget class="GtkLabel" id="ip6_dns_searches_label">
+                          <object class="GtkLabel" id="ip6_dns_searches_label">
                             <property name="visible">True</property>
                             <property name="xalign">0</property>
                             <property name="label" translatable="yes">_Search domains:</property>
                             <property name="use_underline">True</property>
                             <property name="mnemonic_widget">ip6_dns_searches_entry</property>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="top_attach">1</property>
                             <property name="bottom_attach">2</property>
@@ -187,32 +212,32 @@ Shared to other computers</property>
                           </packing>
                         </child>
                         <child>
-                          <widget class="GtkLabel" id="ip6_dns_servers_label">
+                          <object class="GtkLabel" id="ip6_dns_servers_label">
                             <property name="visible">True</property>
                             <property name="xalign">0</property>
                             <property name="label" translatable="yes">_DNS servers:</property>
                             <property name="use_underline">True</property>
                             <property name="mnemonic_widget">ip6_dns_servers_entry</property>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="x_options">GTK_FILL</property>
                             <property name="y_options"></property>
                           </packing>
                         </child>
                         <child>
-                          <widget class="GtkEntry" id="ip6_dns_servers_entry">
+                          <object class="GtkEntry" id="ip6_dns_servers_entry">
                             <property name="visible">True</property>
                             <property name="can_focus">True</property>
-                            <property name="tooltip" translatable="yes">IP addresses of domain name servers used to resolve host names. Use commas to separate multiple domain name server addresses.</property>
+                            <property name="tooltip_text" translatable="yes">IP addresses of domain name servers used to resolve host names. Use commas to separate multiple domain name server addresses.</property>
                             <property name="invisible_char">&#x25CF;</property>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="left_attach">1</property>
                             <property name="right_attach">2</property>
                             <property name="y_options"></property>
                           </packing>
                         </child>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="expand">False</property>
                         <property name="fill">False</property>
@@ -220,55 +245,55 @@ Shared to other computers</property>
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkCheckButton" id="ip6_required_checkbutton">
+                      <object class="GtkCheckButton" id="ip6_required_checkbutton">
                         <property name="label" translatable="yes">Require IPv6 addressing for this connection to complete</property>
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
                         <property name="receives_default">False</property>
-                        <property name="tooltip" translatable="yes">When connecting to IPv4-capable networks, allows the connection to complete if IPv6 configuration fails but IPv4 configuration succeeds.</property>
+                        <property name="tooltip_text" translatable="yes">When connecting to IPv4-capable networks, allows the connection to complete if IPv6 configuration fails but IPv4 configuration succeeds.</property>
                         <property name="draw_indicator">True</property>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="expand">False</property>
                         <property name="position">2</property>
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkHButtonBox" id="hbuttonbox1">
+                      <object class="GtkHButtonBox" id="hbuttonbox1">
                         <property name="visible">True</property>
                         <property name="layout_style">end</property>
                         <child>
-                          <widget class="GtkButton" id="ip6_routes_button">
+                          <object class="GtkButton" id="ip6_routes_button">
                             <property name="visible">True</property>
                             <property name="can_focus">True</property>
                             <property name="receives_default">True</property>
                             <child>
-                              <widget class="GtkHBox" id="hbox4">
+                              <object class="GtkHBox" id="hbox4">
                                 <property name="visible">True</property>
                                 <property name="spacing">3</property>
                                 <child>
-                                  <widget class="GtkImage" id="image1">
+                                  <object class="GtkImage" id="image1">
                                     <property name="visible">True</property>
-                                  </widget>
+                                  </object>
                                   <packing>
                                     <property name="expand">False</property>
                                     <property name="position">0</property>
                                   </packing>
                                 </child>
                                 <child>
-                                  <widget class="GtkLabel" id="label1">
+                                  <object class="GtkLabel" id="label1">
                                     <property name="visible">True</property>
                                     <property name="label" translatable="yes">_Routesâ?¦</property>
                                     <property name="use_underline">True</property>
-                                  </widget>
+                                  </object>
                                   <packing>
                                     <property name="expand">False</property>
                                     <property name="position">1</property>
                                   </packing>
                                 </child>
-                              </widget>
+                              </object>
                             </child>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="expand">False</property>
                             <property name="fill">False</property>
@@ -277,29 +302,29 @@ Shared to other computers</property>
                             <property name="position">0</property>
                           </packing>
                         </child>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="expand">False</property>
                         <property name="fill">False</property>
                         <property name="position">3</property>
                       </packing>
                     </child>
-                  </widget>
+                  </object>
                 </child>
-              </widget>
+              </object>
               <packing>
                 <property name="position">1</property>
               </packing>
             </child>
-          </widget>
+          </object>
           <packing>
             <property name="position">1</property>
           </packing>
         </child>
-      </widget>
+      </object>
     </child>
-  </widget>
-  <widget class="GtkDialog" id="ip6_routes_dialog">
+  </object>
+  <object class="GtkDialog" id="ip6_routes_dialog">
     <property name="width_request">450</property>
     <property name="height_request">250</property>
     <property name="border_width">5</property>
@@ -309,55 +334,55 @@ Shared to other computers</property>
     <property name="type_hint">dialog</property>
     <property name="has_separator">False</property>
     <child internal-child="vbox">
-      <widget class="GtkVBox" id="dialog-vbox1">
+      <object class="GtkVBox" id="dialog-vbox1">
         <property name="visible">True</property>
         <property name="spacing">2</property>
         <child>
-          <widget class="GtkVBox" id="vbox2">
+          <object class="GtkVBox" id="vbox2">
             <property name="visible">True</property>
             <property name="border_width">5</property>
             <property name="orientation">vertical</property>
             <property name="spacing">6</property>
             <child>
-              <widget class="GtkHBox" id="hbox5">
+              <object class="GtkHBox" id="hbox5">
                 <property name="visible">True</property>
                 <property name="spacing">6</property>
                 <child>
-                  <widget class="GtkScrolledWindow" id="scrolledwindow2">
+                  <object class="GtkScrolledWindow" id="scrolledwindow2">
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
                     <property name="hscrollbar_policy">never</property>
                     <property name="vscrollbar_policy">automatic</property>
                     <property name="shadow_type">in</property>
                     <child>
-                      <widget class="GtkTreeView" id="ip6_routes">
+                      <object class="GtkTreeView" id="ip6_routes">
                         <property name="height_request">100</property>
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
                         <property name="has_tooltip">True</property>
-                        <property name="tooltip" translatable="yes">IP addresses identify your computer on the network.  Click the "Add" button to add an IP address.</property>
+                        <property name="tooltip_text" translatable="yes">IP addresses identify your computer on the network.  Click the "Add" button to add an IP address.</property>
                         <property name="rules_hint">True</property>
-                      </widget>
+                      </object>
                     </child>
-                  </widget>
+                  </object>
                   <packing>
                     <property name="position">0</property>
                   </packing>
                 </child>
                 <child>
-                  <widget class="GtkVButtonBox" id="vbuttonbox2">
+                  <object class="GtkVButtonBox" id="vbuttonbox2">
                     <property name="visible">True</property>
                     <property name="spacing">6</property>
                     <property name="layout_style">start</property>
                     <child>
-                      <widget class="GtkButton" id="ip6_route_add_button">
+                      <object class="GtkButton" id="ip6_route_add_button">
                         <property name="label">gtk-add</property>
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
                         <property name="can_default">True</property>
                         <property name="receives_default">True</property>
                         <property name="use_stock">True</property>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="expand">False</property>
                         <property name="fill">False</property>
@@ -365,80 +390,79 @@ Shared to other computers</property>
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkButton" id="ip6_route_delete_button">
+                      <object class="GtkButton" id="ip6_route_delete_button">
                         <property name="label">gtk-delete</property>
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
                         <property name="can_default">True</property>
                         <property name="receives_default">True</property>
                         <property name="use_stock">True</property>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="expand">False</property>
                         <property name="fill">False</property>
                         <property name="position">1</property>
                       </packing>
                     </child>
-                  </widget>
+                  </object>
                   <packing>
                     <property name="expand">False</property>
                     <property name="fill">False</property>
                     <property name="position">1</property>
                   </packing>
                 </child>
-              </widget>
+              </object>
               <packing>
                 <property name="position">0</property>
               </packing>
             </child>
             <child>
-              <widget class="GtkCheckButton" id="ip6_ignore_auto_routes">
+              <object class="GtkCheckButton" id="ip6_ignore_auto_routes">
                 <property name="label" translatable="yes">Ig_nore automatically obtained routes</property>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="receives_default">False</property>
                 <property name="use_underline">True</property>
                 <property name="draw_indicator">True</property>
-              </widget>
+              </object>
               <packing>
                 <property name="expand">False</property>
                 <property name="position">1</property>
               </packing>
             </child>
             <child>
-              <widget class="GtkCheckButton" id="ip6_never_default">
+              <object class="GtkCheckButton" id="ip6_never_default">
                 <property name="label" translatable="yes">Use this c_onnection only for resources on its network</property>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="receives_default">False</property>
                 <property name="has_tooltip">True</property>
-                <property name="tooltip" translatable="yes">If enabled, this connection will never be used as the default network connection.</property>
+                <property name="tooltip_text" translatable="yes">If enabled, this connection will never be used as the default network connection.</property>
                 <property name="use_underline">True</property>
                 <property name="draw_indicator">True</property>
-              </widget>
+              </object>
               <packing>
                 <property name="expand">False</property>
                 <property name="position">2</property>
               </packing>
             </child>
-          </widget>
+          </object>
           <packing>
             <property name="position">1</property>
           </packing>
         </child>
         <child internal-child="action_area">
-          <widget class="GtkHButtonBox" id="dialog-action_area1">
+          <object class="GtkHButtonBox" id="dialog-action_area1">
             <property name="visible">True</property>
             <property name="layout_style">end</property>
             <child>
-              <widget class="GtkButton" id="cancel_button">
+              <object class="GtkButton" id="cancel_button">
                 <property name="label">gtk-cancel</property>
-                <property name="response_id">-6</property>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="receives_default">False</property>
                 <property name="use_stock">True</property>
-              </widget>
+              </object>
               <packing>
                 <property name="expand">False</property>
                 <property name="fill">False</property>
@@ -446,28 +470,31 @@ Shared to other computers</property>
               </packing>
             </child>
             <child>
-              <widget class="GtkButton" id="ok_button">
+              <object class="GtkButton" id="ok_button">
                 <property name="label">gtk-ok</property>
-                <property name="response_id">-5</property>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="receives_default">False</property>
                 <property name="use_stock">True</property>
-              </widget>
+              </object>
               <packing>
                 <property name="expand">False</property>
                 <property name="fill">False</property>
                 <property name="position">1</property>
               </packing>
             </child>
-          </widget>
+          </object>
           <packing>
             <property name="expand">False</property>
             <property name="pack_type">end</property>
             <property name="position">0</property>
           </packing>
         </child>
-      </widget>
+      </object>
     </child>
-  </widget>
-</glade-interface>
+    <action-widgets>
+      <action-widget response="-6">cancel_button</action-widget>
+      <action-widget response="-5">ok_button</action-widget>
+    </action-widgets>
+  </object>
+</interface>
diff --git a/src/connection-editor/ce-page-mobile.glade b/src/connection-editor/ce-page-mobile.ui
similarity index 81%
rename from src/connection-editor/ce-page-mobile.glade
rename to src/connection-editor/ce-page-mobile.ui
index 6eb3e01..094c8a3 100644
--- a/src/connection-editor/ce-page-mobile.glade
+++ b/src/connection-editor/ce-page-mobile.ui
@@ -1,27 +1,50 @@
 <?xml version="1.0"?>
-<glade-interface>
-  <!-- interface-requires gtk+ 2.16 -->
+<interface>
+  <requires lib="gtk+" version="2.16"/>
   <!-- interface-naming-policy toplevel-contextual -->
-  <widget class="GtkWindow" id="mobile_page_widget">
+  <object class="GtkListStore" id="model1">
+    <columns>
+      <!-- column-name gchararray -->
+      <column type="gchararray"/>
+    </columns>
+    <data>
+      <row>
+        <col id="0" translatable="yes">Any</col>
+      </row>
+      <row>
+        <col id="0" translatable="yes">3G (UMTS/HSPA)</col>
+      </row>
+      <row>
+        <col id="0" translatable="yes">2G (GPRS/EDGE)</col>
+      </row>
+      <row>
+        <col id="0" translatable="yes">Prefer 3G (UMTS/HSPA)</col>
+      </row>
+      <row>
+        <col id="0" translatable="yes">Prefer 2G (GPRS/EDGE)</col>
+      </row>
+    </data>
+  </object>
+  <object class="GtkWindow" id="mobile_page_widget">
     <property name="title" translatable="yes">window1</property>
     <child>
-      <widget class="GtkVBox" id="MobilePage">
+      <object class="GtkVBox" id="MobilePage">
         <property name="visible">True</property>
         <property name="border_width">12</property>
         <property name="orientation">vertical</property>
         <property name="spacing">18</property>
         <child>
-          <widget class="GtkVBox" id="mobile_basic_vbox">
+          <object class="GtkVBox" id="mobile_basic_vbox">
             <property name="visible">True</property>
             <property name="orientation">vertical</property>
             <property name="spacing">6</property>
             <child>
-              <widget class="GtkLabel" id="mobile_basic_label">
+              <object class="GtkLabel" id="mobile_basic_label">
                 <property name="visible">True</property>
                 <property name="xalign">0</property>
                 <property name="label" translatable="yes">&lt;b&gt;Basic&lt;/b&gt;</property>
                 <property name="use_markup">True</property>
-              </widget>
+              </object>
               <packing>
                 <property name="expand">False</property>
                 <property name="fill">False</property>
@@ -29,37 +52,37 @@
               </packing>
             </child>
             <child>
-              <widget class="GtkAlignment" id="alignment1">
+              <object class="GtkAlignment" id="alignment1">
                 <property name="visible">True</property>
                 <property name="left_padding">12</property>
                 <child>
-                  <widget class="GtkTable" id="table1">
+                  <object class="GtkTable" id="table1">
                     <property name="visible">True</property>
                     <property name="n_rows">3</property>
                     <property name="n_columns">2</property>
                     <property name="column_spacing">12</property>
                     <property name="row_spacing">6</property>
                     <child>
-                      <widget class="GtkLabel" id="label28">
+                      <object class="GtkLabel" id="label28">
                         <property name="visible">True</property>
                         <property name="xalign">0</property>
                         <property name="label" translatable="yes">Nu_mber:</property>
                         <property name="use_underline">True</property>
                         <property name="mnemonic_widget">mobile_number</property>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="x_options">GTK_FILL</property>
                         <property name="y_options"></property>
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkLabel" id="label24">
+                      <object class="GtkLabel" id="label24">
                         <property name="visible">True</property>
                         <property name="xalign">0</property>
                         <property name="label" translatable="yes">_Username:</property>
                         <property name="use_underline">True</property>
                         <property name="mnemonic_widget">mobile_username</property>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="top_attach">1</property>
                         <property name="bottom_attach">2</property>
@@ -68,13 +91,13 @@
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkLabel" id="label25">
+                      <object class="GtkLabel" id="label25">
                         <property name="visible">True</property>
                         <property name="xalign">0</property>
                         <property name="label" translatable="yes">_Password:</property>
                         <property name="use_underline">True</property>
                         <property name="mnemonic_widget">mobile_password</property>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="top_attach">2</property>
                         <property name="bottom_attach">3</property>
@@ -83,10 +106,10 @@
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkEntry" id="mobile_number">
+                      <object class="GtkEntry" id="mobile_number">
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="left_attach">1</property>
                         <property name="right_attach">2</property>
@@ -94,10 +117,10 @@
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkEntry" id="mobile_username">
+                      <object class="GtkEntry" id="mobile_username">
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="left_attach">1</property>
                         <property name="right_attach">2</property>
@@ -107,11 +130,11 @@
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkEntry" id="mobile_password">
+                      <object class="GtkEntry" id="mobile_password">
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
                         <property name="visibility">False</property>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="left_attach">1</property>
                         <property name="right_attach">2</property>
@@ -120,16 +143,16 @@
                         <property name="y_options"></property>
                       </packing>
                     </child>
-                  </widget>
+                  </object>
                 </child>
-              </widget>
+              </object>
               <packing>
                 <property name="expand">False</property>
                 <property name="fill">False</property>
                 <property name="position">1</property>
               </packing>
             </child>
-          </widget>
+          </object>
           <packing>
             <property name="expand">False</property>
             <property name="fill">False</property>
@@ -137,17 +160,17 @@
           </packing>
         </child>
         <child>
-          <widget class="GtkVBox" id="mobile_advanced_vbox">
+          <object class="GtkVBox" id="mobile_advanced_vbox">
             <property name="visible">True</property>
             <property name="orientation">vertical</property>
             <property name="spacing">6</property>
             <child>
-              <widget class="GtkLabel" id="mobile_advanced_label">
+              <object class="GtkLabel" id="mobile_advanced_label">
                 <property name="visible">True</property>
                 <property name="xalign">0</property>
                 <property name="label" translatable="yes">&lt;b&gt;Advanced&lt;/b&gt;</property>
                 <property name="use_markup">True</property>
-              </widget>
+              </object>
               <packing>
                 <property name="expand">False</property>
                 <property name="fill">False</property>
@@ -155,37 +178,37 @@
               </packing>
             </child>
             <child>
-              <widget class="GtkAlignment" id="alignment2">
+              <object class="GtkAlignment" id="alignment2">
                 <property name="visible">True</property>
                 <property name="left_padding">12</property>
                 <child>
-                  <widget class="GtkTable" id="table2">
+                  <object class="GtkTable" id="table2">
                     <property name="visible">True</property>
                     <property name="n_rows">6</property>
                     <property name="n_columns">2</property>
                     <property name="column_spacing">12</property>
                     <property name="row_spacing">6</property>
                     <child>
-                      <widget class="GtkLabel" id="label29">
+                      <object class="GtkLabel" id="label29">
                         <property name="visible">True</property>
                         <property name="xalign">0</property>
                         <property name="label" translatable="yes">_APN:</property>
                         <property name="use_underline">True</property>
                         <property name="mnemonic_widget">mobile_apn</property>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="x_options">GTK_FILL</property>
                         <property name="y_options"></property>
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkLabel" id="label30">
+                      <object class="GtkLabel" id="label30">
                         <property name="visible">True</property>
                         <property name="xalign">0</property>
                         <property name="label" translatable="yes">N_etwork ID:</property>
                         <property name="use_underline">True</property>
                         <property name="mnemonic_widget">mobile_network_id</property>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="top_attach">1</property>
                         <property name="bottom_attach">2</property>
@@ -194,10 +217,10 @@
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkEntry" id="mobile_network_id">
+                      <object class="GtkEntry" id="mobile_network_id">
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="left_attach">1</property>
                         <property name="right_attach">2</property>
@@ -207,13 +230,13 @@
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkLabel" id="type_label">
+                      <object class="GtkLabel" id="type_label">
                         <property name="visible">True</property>
                         <property name="xalign">0</property>
                         <property name="label" translatable="yes">_Type:</property>
                         <property name="use_underline">True</property>
                         <property name="mnemonic_widget">mobile_network_type</property>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="top_attach">2</property>
                         <property name="bottom_attach">3</property>
@@ -222,14 +245,16 @@
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkComboBox" id="mobile_network_type">
+                      <object class="GtkComboBox" id="mobile_network_type">
                         <property name="visible">True</property>
-                        <property name="items" translatable="yes">Any
-3G (UMTS/HSPA)
-2G (GPRS/EDGE)
-Prefer 3G (UMTS/HSPA)
-Prefer 2G (GPRS/EDGE)</property>
-                      </widget>
+                        <property name="model">model1</property>
+                        <child>
+                          <object class="GtkCellRendererText" id="renderer1"/>
+                          <attributes>
+                            <attribute name="text">0</attribute>
+                          </attributes>
+                        </child>
+                      </object>
                       <packing>
                         <property name="left_attach">1</property>
                         <property name="right_attach">2</property>
@@ -239,31 +264,31 @@ Prefer 2G (GPRS/EDGE)</property>
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkHBox" id="hbox2">
+                      <object class="GtkHBox" id="hbox2">
                         <property name="visible">True</property>
                         <property name="spacing">6</property>
                         <child>
-                          <widget class="GtkEntry" id="mobile_apn">
+                          <object class="GtkEntry" id="mobile_apn">
                             <property name="visible">True</property>
                             <property name="can_focus">True</property>
                             <property name="invisible_char">&#x25CF;</property>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="position">0</property>
                           </packing>
                         </child>
                         <child>
-                          <widget class="GtkButton" id="mobile_apn_button">
+                          <object class="GtkButton" id="mobile_apn_button">
                             <property name="label" translatable="yes">Change...</property>
                             <property name="visible">True</property>
                             <property name="can_focus">True</property>
                             <property name="receives_default">True</property>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="position">1</property>
                           </packing>
                         </child>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="left_attach">1</property>
                         <property name="right_attach">2</property>
@@ -271,13 +296,13 @@ Prefer 2G (GPRS/EDGE)</property>
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkLabel" id="label33">
+                      <object class="GtkLabel" id="label33">
                         <property name="visible">True</property>
                         <property name="xalign">0</property>
                         <property name="label" translatable="yes">PI_N:</property>
                         <property name="use_underline">True</property>
                         <property name="mnemonic_widget">mobile_pin</property>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="top_attach">4</property>
                         <property name="bottom_attach">5</property>
@@ -286,21 +311,12 @@ Prefer 2G (GPRS/EDGE)</property>
                       </packing>
                     </child>
                     <child>
-                      <placeholder/>
-                    </child>
-                    <child>
-                      <placeholder/>
-                    </child>
-                    <child>
-                      <placeholder/>
-                    </child>
-                    <child>
-                      <widget class="GtkEntry" id="mobile_pin">
+                      <object class="GtkEntry" id="mobile_pin">
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
                         <property name="visibility">False</property>
                         <property name="invisible_char">&#x25CF;</property>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="left_attach">1</property>
                         <property name="right_attach">2</property>
@@ -310,14 +326,14 @@ Prefer 2G (GPRS/EDGE)</property>
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkCheckButton" id="mobile_roaming_allowed">
+                      <object class="GtkCheckButton" id="mobile_roaming_allowed">
                         <property name="label" translatable="yes">Allow roaming if home network is not available</property>
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
                         <property name="receives_default">False</property>
                         <property name="active">True</property>
                         <property name="draw_indicator">True</property>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="left_attach">1</property>
                         <property name="right_attach">2</property>
@@ -325,16 +341,25 @@ Prefer 2G (GPRS/EDGE)</property>
                         <property name="bottom_attach">4</property>
                       </packing>
                     </child>
-                  </widget>
+                    <child>
+                      <placeholder/>
+                    </child>
+                    <child>
+                      <placeholder/>
+                    </child>
+                    <child>
+                      <placeholder/>
+                    </child>
+                  </object>
                 </child>
-              </widget>
+              </object>
               <packing>
                 <property name="expand">False</property>
                 <property name="fill">False</property>
                 <property name="position">1</property>
               </packing>
             </child>
-          </widget>
+          </object>
           <packing>
             <property name="expand">False</property>
             <property name="fill">False</property>
@@ -342,10 +367,10 @@ Prefer 2G (GPRS/EDGE)</property>
           </packing>
         </child>
         <child>
-          <widget class="GtkHBox" id="hbox1">
+          <object class="GtkHBox" id="hbox1">
             <property name="visible">True</property>
             <child>
-              <widget class="GtkCheckButton" id="mobile_show_passwords">
+              <object class="GtkCheckButton" id="mobile_show_passwords">
                 <property name="label" translatable="yes">Sho_w passwords</property>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
@@ -354,7 +379,7 @@ Prefer 2G (GPRS/EDGE)</property>
                 <property name="xalign">0</property>
                 <property name="image_position">top</property>
                 <property name="draw_indicator">True</property>
-              </widget>
+              </object>
               <packing>
                 <property name="expand">False</property>
                 <property name="fill">False</property>
@@ -362,12 +387,12 @@ Prefer 2G (GPRS/EDGE)</property>
                 <property name="position">0</property>
               </packing>
             </child>
-          </widget>
+          </object>
           <packing>
             <property name="position">2</property>
           </packing>
         </child>
-      </widget>
+      </object>
     </child>
-  </widget>
-</glade-interface>
+  </object>
+</interface>
diff --git a/src/connection-editor/ce-page-ppp.glade b/src/connection-editor/ce-page-ppp.ui
similarity index 81%
rename from src/connection-editor/ce-page-ppp.glade
rename to src/connection-editor/ce-page-ppp.ui
index 6b4c5b9..210749e 100644
--- a/src/connection-editor/ce-page-ppp.glade
+++ b/src/connection-editor/ce-page-ppp.ui
@@ -1,25 +1,25 @@
 <?xml version="1.0"?>
-<glade-interface>
-  <!-- interface-requires gtk+ 2.16 -->
+<interface>
+  <requires lib="gtk+" version="2.16"/>
   <!-- interface-naming-policy toplevel-contextual -->
-  <widget class="GtkWindow" id="ppp_page_widget">
+  <object class="GtkWindow" id="ppp_page_widget">
     <property name="title" translatable="yes">window1</property>
     <child>
-      <widget class="GtkVBox" id="PppPage">
+      <object class="GtkVBox" id="PppPage">
         <property name="visible">True</property>
         <property name="border_width">12</property>
         <property name="spacing">18</property>
         <child>
-          <widget class="GtkVBox" id="vbox2">
+          <object class="GtkVBox" id="vbox2">
             <property name="visible">True</property>
             <property name="spacing">6</property>
             <child>
-              <widget class="GtkLabel" id="label28">
+              <object class="GtkLabel" id="label28">
                 <property name="visible">True</property>
                 <property name="xalign">0</property>
                 <property name="label" translatable="yes">&lt;b&gt;Authentication&lt;/b&gt;</property>
                 <property name="use_markup">True</property>
-              </widget>
+              </object>
               <packing>
                 <property name="expand">False</property>
                 <property name="fill">False</property>
@@ -27,91 +27,91 @@
               </packing>
             </child>
             <child>
-              <widget class="GtkAlignment" id="alignment1">
+              <object class="GtkAlignment" id="alignment1">
                 <property name="visible">True</property>
                 <property name="left_padding">12</property>
                 <child>
-                  <widget class="GtkVBox" id="vbox4">
+                  <object class="GtkVBox" id="vbox4">
                     <property name="visible">True</property>
                     <property name="spacing">6</property>
                     <child>
-                      <widget class="GtkHBox" id="hbox2">
+                      <object class="GtkHBox" id="hbox2">
                         <property name="visible">True</property>
                         <property name="spacing">12</property>
                         <child>
-                          <widget class="GtkLabel" id="label1">
+                          <object class="GtkLabel" id="label1">
                             <property name="visible">True</property>
                             <property name="xalign">0</property>
                             <property name="label" translatable="yes">Allowed methods:</property>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="expand">False</property>
                             <property name="position">0</property>
                           </packing>
                         </child>
                         <child>
-                          <widget class="GtkLabel" id="auth_methods_label">
+                          <object class="GtkLabel" id="auth_methods_label">
                             <property name="visible">True</property>
                             <property name="xalign">0</property>
                             <property name="selectable">True</property>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="position">1</property>
                           </packing>
                         </child>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="position">0</property>
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkHButtonBox" id="hbuttonbox1">
+                      <object class="GtkHButtonBox" id="hbuttonbox1">
                         <property name="visible">True</property>
                         <property name="layout_style">start</property>
                         <child>
-                          <widget class="GtkButton" id="auth_methods_button">
-                            <property name="label" translatable="yes">Configure _Methodsâ?¦</property>
+                          <object class="GtkButton" id="auth_methods_button">
+                            <property name="label" translatable="yes">Configure _Methods&#x2026;</property>
                             <property name="visible">True</property>
                             <property name="can_focus">True</property>
                             <property name="receives_default">True</property>
                             <property name="use_underline">True</property>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="expand">False</property>
                             <property name="fill">False</property>
                             <property name="position">0</property>
                           </packing>
                         </child>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="position">1</property>
                       </packing>
                     </child>
-                  </widget>
+                  </object>
                 </child>
-              </widget>
+              </object>
               <packing>
                 <property name="expand">False</property>
                 <property name="position">1</property>
               </packing>
             </child>
-          </widget>
+          </object>
           <packing>
             <property name="expand">False</property>
             <property name="position">0</property>
           </packing>
         </child>
         <child>
-          <widget class="GtkVBox" id="vbox5">
+          <object class="GtkVBox" id="vbox5">
             <property name="visible">True</property>
             <property name="spacing">6</property>
             <child>
-              <widget class="GtkLabel" id="label29">
+              <object class="GtkLabel" id="label29">
                 <property name="visible">True</property>
                 <property name="xalign">0</property>
                 <property name="label" translatable="yes">&lt;b&gt;Compression&lt;/b&gt;</property>
                 <property name="use_markup">True</property>
-              </widget>
+              </object>
               <packing>
                 <property name="expand">False</property>
                 <property name="fill">False</property>
@@ -119,26 +119,26 @@
               </packing>
             </child>
             <child>
-              <widget class="GtkAlignment" id="alignment3">
+              <object class="GtkAlignment" id="alignment3">
                 <property name="visible">True</property>
                 <property name="left_padding">12</property>
                 <child>
-                  <widget class="GtkVBox" id="vbox6">
+                  <object class="GtkVBox" id="vbox6">
                     <property name="visible">True</property>
                     <property name="spacing">6</property>
                     <child>
-                      <widget class="GtkVBox" id="vbox7">
+                      <object class="GtkVBox" id="vbox7">
                         <property name="visible">True</property>
                         <property name="spacing">6</property>
                         <child>
-                          <widget class="GtkCheckButton" id="ppp_use_mppe">
+                          <object class="GtkCheckButton" id="ppp_use_mppe">
                             <property name="label" translatable="yes">_Use point-to-point encryption (MPPE)</property>
                             <property name="visible">True</property>
                             <property name="can_focus">True</property>
                             <property name="receives_default">False</property>
                             <property name="use_underline">True</property>
                             <property name="draw_indicator">True</property>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="expand">False</property>
                             <property name="fill">False</property>
@@ -146,22 +146,22 @@
                           </packing>
                         </child>
                         <child>
-                          <widget class="GtkAlignment" id="alignment4">
+                          <object class="GtkAlignment" id="alignment4">
                             <property name="visible">True</property>
                             <property name="left_padding">12</property>
                             <child>
-                              <widget class="GtkVBox" id="vbox8">
+                              <object class="GtkVBox" id="vbox8">
                                 <property name="visible">True</property>
                                 <property name="spacing">6</property>
                                 <child>
-                                  <widget class="GtkCheckButton" id="ppp_require_mppe_128">
+                                  <object class="GtkCheckButton" id="ppp_require_mppe_128">
                                     <property name="label" translatable="yes">_Require 128-bit encryption</property>
                                     <property name="visible">True</property>
                                     <property name="can_focus">True</property>
                                     <property name="receives_default">False</property>
                                     <property name="use_underline">True</property>
                                     <property name="draw_indicator">True</property>
-                                  </widget>
+                                  </object>
                                   <packing>
                                     <property name="expand">False</property>
                                     <property name="fill">False</property>
@@ -169,28 +169,28 @@
                                   </packing>
                                 </child>
                                 <child>
-                                  <widget class="GtkCheckButton" id="ppp_use_stateful_mppe">
+                                  <object class="GtkCheckButton" id="ppp_use_stateful_mppe">
                                     <property name="label" translatable="yes">Use _stateful MPPE</property>
                                     <property name="visible">True</property>
                                     <property name="can_focus">True</property>
                                     <property name="receives_default">False</property>
                                     <property name="use_underline">True</property>
                                     <property name="draw_indicator">True</property>
-                                  </widget>
+                                  </object>
                                   <packing>
                                     <property name="expand">False</property>
                                     <property name="fill">False</property>
                                     <property name="position">1</property>
                                   </packing>
                                 </child>
-                              </widget>
+                              </object>
                             </child>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="position">1</property>
                           </packing>
                         </child>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="expand">False</property>
                         <property name="fill">False</property>
@@ -198,14 +198,14 @@
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkCheckButton" id="ppp_allow_bsdcomp">
+                      <object class="GtkCheckButton" id="ppp_allow_bsdcomp">
                         <property name="label" translatable="yes">Allow _BSD data compression</property>
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
                         <property name="receives_default">False</property>
                         <property name="use_underline">True</property>
                         <property name="draw_indicator">True</property>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="expand">False</property>
                         <property name="fill">False</property>
@@ -213,14 +213,14 @@
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkCheckButton" id="ppp_allow_deflate">
+                      <object class="GtkCheckButton" id="ppp_allow_deflate">
                         <property name="label" translatable="yes">Allow _Deflate data compression</property>
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
                         <property name="receives_default">False</property>
                         <property name="use_underline">True</property>
                         <property name="draw_indicator">True</property>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="expand">False</property>
                         <property name="fill">False</property>
@@ -228,45 +228,45 @@
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkCheckButton" id="ppp_usevj">
+                      <object class="GtkCheckButton" id="ppp_usevj">
                         <property name="label" translatable="yes">Use TCP _header compression</property>
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
                         <property name="receives_default">False</property>
                         <property name="use_underline">True</property>
                         <property name="draw_indicator">True</property>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="expand">False</property>
                         <property name="fill">False</property>
                         <property name="position">3</property>
                       </packing>
                     </child>
-                  </widget>
+                  </object>
                 </child>
-              </widget>
+              </object>
               <packing>
                 <property name="expand">False</property>
                 <property name="position">1</property>
               </packing>
             </child>
-          </widget>
+          </object>
           <packing>
             <property name="expand">False</property>
             <property name="position">1</property>
           </packing>
         </child>
         <child>
-          <widget class="GtkVBox" id="vbox9">
+          <object class="GtkVBox" id="vbox9">
             <property name="visible">True</property>
             <property name="spacing">6</property>
             <child>
-              <widget class="GtkLabel" id="label31">
+              <object class="GtkLabel" id="label31">
                 <property name="visible">True</property>
                 <property name="xalign">0</property>
                 <property name="label" translatable="yes">&lt;b&gt;Echo&lt;/b&gt;</property>
                 <property name="use_markup">True</property>
-              </widget>
+              </object>
               <packing>
                 <property name="expand">False</property>
                 <property name="fill">False</property>
@@ -274,34 +274,34 @@
               </packing>
             </child>
             <child>
-              <widget class="GtkAlignment" id="alignment5">
+              <object class="GtkAlignment" id="alignment5">
                 <property name="visible">True</property>
                 <property name="left_padding">12</property>
                 <child>
-                  <widget class="GtkCheckButton" id="ppp_send_echo_packets">
+                  <object class="GtkCheckButton" id="ppp_send_echo_packets">
                     <property name="label" translatable="yes">Send PPP _echo packets</property>
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
                     <property name="receives_default">False</property>
                     <property name="use_underline">True</property>
                     <property name="draw_indicator">True</property>
-                  </widget>
+                  </object>
                 </child>
-              </widget>
+              </object>
               <packing>
                 <property name="position">1</property>
               </packing>
             </child>
-          </widget>
+          </object>
           <packing>
             <property name="expand">False</property>
             <property name="position">2</property>
           </packing>
         </child>
-      </widget>
+      </object>
     </child>
-  </widget>
-  <widget class="GtkDialog" id="auth_methods_dialog">
+  </object>
+  <object class="GtkDialog" id="auth_methods_dialog">
     <property name="extension_events">all</property>
     <property name="border_width">5</property>
     <property name="window_position">center-on-parent</property>
@@ -309,125 +309,125 @@
     <property name="type_hint">dialog</property>
     <property name="has_separator">False</property>
     <child internal-child="vbox">
-      <widget class="GtkVBox" id="dialog-vbox1">
+      <object class="GtkVBox" id="dialog-vbox1">
         <property name="visible">True</property>
         <property name="spacing">2</property>
         <child>
-          <widget class="GtkVBox" id="vbox1">
+          <object class="GtkVBox" id="vbox1">
             <property name="visible">True</property>
             <property name="border_width">5</property>
             <property name="spacing">6</property>
             <child>
-              <widget class="GtkLabel" id="label3">
+              <object class="GtkLabel" id="label3">
                 <property name="visible">True</property>
                 <property name="xalign">0</property>
                 <property name="label" translatable="yes">&lt;b&gt;Allowed Authentication Methods&lt;/b&gt;</property>
                 <property name="use_markup">True</property>
-              </widget>
+              </object>
               <packing>
                 <property name="expand">False</property>
                 <property name="position">0</property>
               </packing>
             </child>
             <child>
-              <widget class="GtkAlignment" id="alignment2">
+              <object class="GtkAlignment" id="alignment2">
                 <property name="visible">True</property>
                 <property name="left_padding">12</property>
                 <child>
-                  <widget class="GtkVBox" id="vbox3">
+                  <object class="GtkVBox" id="vbox3">
                     <property name="visible">True</property>
                     <property name="spacing">6</property>
                     <child>
-                      <widget class="GtkCheckButton" id="allow_eap">
+                      <object class="GtkCheckButton" id="allow_eap">
                         <property name="label" translatable="yes">_EAP</property>
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
                         <property name="receives_default">False</property>
-                        <property name="tooltip" translatable="yes">Extensible Authentication Protocol</property>
+                        <property name="tooltip_text" translatable="yes">Extensible Authentication Protocol</property>
                         <property name="use_underline">True</property>
                         <property name="draw_indicator">True</property>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="position">0</property>
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkCheckButton" id="allow_pap">
+                      <object class="GtkCheckButton" id="allow_pap">
                         <property name="label" translatable="yes">_PAP</property>
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
                         <property name="receives_default">False</property>
-                        <property name="tooltip" translatable="yes">Password Authentication Protocol</property>
+                        <property name="tooltip_text" translatable="yes">Password Authentication Protocol</property>
                         <property name="use_underline">True</property>
                         <property name="draw_indicator">True</property>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="position">1</property>
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkCheckButton" id="allow_chap">
+                      <object class="GtkCheckButton" id="allow_chap">
                         <property name="label" translatable="yes">C_HAP</property>
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
                         <property name="receives_default">False</property>
-                        <property name="tooltip" translatable="yes">Challenge Handshake Authentication Protocol</property>
+                        <property name="tooltip_text" translatable="yes">Challenge Handshake Authentication Protocol</property>
                         <property name="use_underline">True</property>
                         <property name="draw_indicator">True</property>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="position">2</property>
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkCheckButton" id="allow_mschap">
+                      <object class="GtkCheckButton" id="allow_mschap">
                         <property name="label" translatable="yes">_MSCHAP</property>
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
                         <property name="receives_default">False</property>
-                        <property name="tooltip" translatable="yes">Microsoft Challenge Handshake Authentication Protocol</property>
+                        <property name="tooltip_text" translatable="yes">Microsoft Challenge Handshake Authentication Protocol</property>
                         <property name="use_underline">True</property>
                         <property name="draw_indicator">True</property>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="position">3</property>
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkCheckButton" id="allow_mschapv2">
+                      <object class="GtkCheckButton" id="allow_mschapv2">
                         <property name="label" translatable="yes">MSCHAP v_2</property>
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
                         <property name="receives_default">False</property>
-                        <property name="tooltip" translatable="yes">Microsoft Challenge Handshake Authentication Protocol version 2</property>
+                        <property name="tooltip_text" translatable="yes">Microsoft Challenge Handshake Authentication Protocol version 2</property>
                         <property name="use_underline">True</property>
                         <property name="draw_indicator">True</property>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="position">4</property>
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkLabel" id="label2">
+                      <object class="GtkLabel" id="label2">
                         <property name="visible">True</property>
                         <property name="xalign">0</property>
                         <property name="label" translatable="yes">&lt;i&gt;In most cases, the provider's PPP servers will support all authentication methods.  If connections fail, try disabling support for some methods.&lt;/i&gt;</property>
                         <property name="use_markup">True</property>
                         <property name="wrap">True</property>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="position">5</property>
                       </packing>
                     </child>
-                  </widget>
+                  </object>
                 </child>
-              </widget>
+              </object>
               <packing>
                 <property name="expand">False</property>
                 <property name="position">1</property>
               </packing>
             </child>
-          </widget>
+          </object>
           <packing>
             <property name="expand">False</property>
             <property name="fill">False</property>
@@ -435,18 +435,17 @@
           </packing>
         </child>
         <child internal-child="action_area">
-          <widget class="GtkHButtonBox" id="dialog-action_area1">
+          <object class="GtkHButtonBox" id="dialog-action_area1">
             <property name="visible">True</property>
             <property name="layout_style">end</property>
             <child>
-              <widget class="GtkButton" id="cancel_button">
+              <object class="GtkButton" id="cancel_button">
                 <property name="label">gtk-cancel</property>
-                <property name="response_id">-6</property>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="receives_default">True</property>
                 <property name="use_stock">True</property>
-              </widget>
+              </object>
               <packing>
                 <property name="expand">False</property>
                 <property name="fill">False</property>
@@ -454,28 +453,31 @@
               </packing>
             </child>
             <child>
-              <widget class="GtkButton" id="ok_button">
+              <object class="GtkButton" id="ok_button">
                 <property name="label">gtk-ok</property>
-                <property name="response_id">-5</property>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="receives_default">True</property>
                 <property name="use_stock">True</property>
-              </widget>
+              </object>
               <packing>
                 <property name="expand">False</property>
                 <property name="fill">False</property>
                 <property name="position">1</property>
               </packing>
             </child>
-          </widget>
+          </object>
           <packing>
             <property name="expand">False</property>
             <property name="pack_type">end</property>
             <property name="position">0</property>
           </packing>
         </child>
-      </widget>
+      </object>
     </child>
-  </widget>
-</glade-interface>
+    <action-widgets>
+      <action-widget response="-6">cancel_button</action-widget>
+      <action-widget response="-5">ok_button</action-widget>
+    </action-widgets>
+  </object>
+</interface>
diff --git a/src/connection-editor/ce-page-wired.glade b/src/connection-editor/ce-page-wired.ui
similarity index 66%
rename from src/connection-editor/ce-page-wired.glade
rename to src/connection-editor/ce-page-wired.ui
index 47dc568..d671582 100644
--- a/src/connection-editor/ce-page-wired.glade
+++ b/src/connection-editor/ce-page-wired.ui
@@ -1,11 +1,63 @@
 <?xml version="1.0"?>
-<glade-interface>
-  <!-- interface-requires gtk+ 2.16 -->
+<interface>
+  <requires lib="gtk+" version="2.16"/>
   <!-- interface-naming-policy toplevel-contextual -->
-  <widget class="GtkWindow" id="wired_page_widget">
+  <object class="GtkAdjustment" id="adjustment1">
+    <property name="upper">10000</property>
+    <property name="step_increment">1</property>
+    <property name="page_increment">10</property>
+    <property name="page_size">0</property>
+  </object>
+  <object class="GtkListStore" id="model1">
+    <columns>
+      <!-- column-name gchararray -->
+      <column type="gchararray"/>
+    </columns>
+    <data>
+      <row>
+        <col id="0" translatable="yes">Automatic</col>
+      </row>
+      <row>
+        <col id="0" translatable="yes">Twisted Pair (TP)</col>
+      </row>
+      <row>
+        <col id="0" translatable="yes">Attachment Unit Interface (AUI)</col>
+      </row>
+      <row>
+        <col id="0" translatable="yes">BNC</col>
+      </row>
+      <row>
+        <col id="0" translatable="yes">Media Independent Interface (MII)</col>
+      </row>
+    </data>
+  </object>
+  <object class="GtkListStore" id="model2">
+    <columns>
+      <!-- column-name gchararray -->
+      <column type="gchararray"/>
+    </columns>
+    <data>
+      <row>
+        <col id="0" translatable="yes">Automatic</col>
+      </row>
+      <row>
+        <col id="0" translatable="yes">10 Mb/s</col>
+      </row>
+      <row>
+        <col id="0" translatable="yes">100 Mb/s</col>
+      </row>
+      <row>
+        <col id="0" translatable="yes">1 Gb/s</col>
+      </row>
+      <row>
+        <col id="0" translatable="yes">10 Gb/s</col>
+      </row>
+    </data>
+  </object>
+  <object class="GtkWindow" id="wired_page_widget">
     <property name="title" translatable="yes">window1</property>
     <child>
-      <widget class="GtkTable" id="WiredPage">
+      <object class="GtkTable" id="WiredPage">
         <property name="visible">True</property>
         <property name="border_width">12</property>
         <property name="n_rows">6</property>
@@ -13,27 +65,29 @@
         <property name="column_spacing">12</property>
         <property name="row_spacing">6</property>
         <child>
-          <widget class="GtkLabel" id="wired_port_label">
+          <object class="GtkLabel" id="wired_port_label">
             <property name="visible">True</property>
             <property name="xalign">0</property>
             <property name="label" translatable="yes">_Port:</property>
             <property name="use_underline">True</property>
             <property name="mnemonic_widget">wired_port</property>
-          </widget>
+          </object>
           <packing>
             <property name="x_options">GTK_FILL</property>
             <property name="y_options"></property>
           </packing>
         </child>
         <child>
-          <widget class="GtkComboBox" id="wired_port">
+          <object class="GtkComboBox" id="wired_port">
             <property name="visible">True</property>
-            <property name="items" translatable="yes">Automatic
-Twisted Pair (TP)
-Attachment Unit Interface (AUI)
-BNC
-Media Independent Interface (MII)</property>
-          </widget>
+            <property name="model">model1</property>
+            <child>
+              <object class="GtkCellRendererText" id="renderer1"/>
+              <attributes>
+                <attribute name="text">0</attribute>
+              </attributes>
+            </child>
+          </object>
           <packing>
             <property name="left_attach">1</property>
             <property name="right_attach">2</property>
@@ -41,13 +95,13 @@ Media Independent Interface (MII)</property>
           </packing>
         </child>
         <child>
-          <widget class="GtkLabel" id="wired_speed_label">
+          <object class="GtkLabel" id="wired_speed_label">
             <property name="visible">True</property>
             <property name="xalign">0</property>
             <property name="label" translatable="yes">_Speed:</property>
             <property name="use_underline">True</property>
             <property name="mnemonic_widget">wired_speed</property>
-          </widget>
+          </object>
           <packing>
             <property name="top_attach">1</property>
             <property name="bottom_attach">2</property>
@@ -56,14 +110,16 @@ Media Independent Interface (MII)</property>
           </packing>
         </child>
         <child>
-          <widget class="GtkComboBox" id="wired_speed">
+          <object class="GtkComboBox" id="wired_speed">
             <property name="visible">True</property>
-            <property name="items" translatable="yes">Automatic
-10 Mb/s
-100 Mb/s
-1 Gb/s
-10 Gb/s</property>
-          </widget>
+            <property name="model">model2</property>
+            <child>
+              <object class="GtkCellRendererText" id="renderer2"/>
+              <attributes>
+                <attribute name="text">0</attribute>
+              </attributes>
+            </child>
+          </object>
           <packing>
             <property name="left_attach">1</property>
             <property name="right_attach">2</property>
@@ -73,14 +129,14 @@ Media Independent Interface (MII)</property>
           </packing>
         </child>
         <child>
-          <widget class="GtkCheckButton" id="wired_duplex">
+          <object class="GtkCheckButton" id="wired_duplex">
             <property name="label" translatable="yes">Full duple_x</property>
             <property name="visible">True</property>
             <property name="can_focus">True</property>
             <property name="receives_default">False</property>
             <property name="use_underline">True</property>
             <property name="draw_indicator">True</property>
-          </widget>
+          </object>
           <packing>
             <property name="right_attach">2</property>
             <property name="top_attach">2</property>
@@ -90,14 +146,14 @@ Media Independent Interface (MII)</property>
           </packing>
         </child>
         <child>
-          <widget class="GtkCheckButton" id="wired_autonegotiate">
+          <object class="GtkCheckButton" id="wired_autonegotiate">
             <property name="label" translatable="yes">Aut_onegotiate</property>
             <property name="visible">True</property>
             <property name="can_focus">True</property>
             <property name="receives_default">False</property>
             <property name="use_underline">True</property>
             <property name="draw_indicator">True</property>
-          </widget>
+          </object>
           <packing>
             <property name="right_attach">2</property>
             <property name="top_attach">3</property>
@@ -107,13 +163,13 @@ Media Independent Interface (MII)</property>
           </packing>
         </child>
         <child>
-          <widget class="GtkLabel" id="label26">
+          <object class="GtkLabel" id="label26">
             <property name="visible">True</property>
             <property name="xalign">0</property>
             <property name="label" translatable="yes">_Device MAC address:</property>
             <property name="use_underline">True</property>
             <property name="mnemonic_widget">wired_device_mac</property>
-          </widget>
+          </object>
           <packing>
             <property name="top_attach">4</property>
             <property name="bottom_attach">5</property>
@@ -122,11 +178,11 @@ Media Independent Interface (MII)</property>
           </packing>
         </child>
         <child>
-          <widget class="GtkEntry" id="wired_device_mac">
+          <object class="GtkEntry" id="wired_device_mac">
             <property name="visible">True</property>
             <property name="can_focus">True</property>
-            <property name="tooltip" translatable="yes">This option locks this connection to the network device specified by its permanent MAC address entered here.  Example: 00:11:22:33:44:55</property>
-          </widget>
+            <property name="tooltip_text" translatable="yes">This option locks this connection to the network device specified by its permanent MAC address entered here.  Example: 00:11:22:33:44:55</property>
+          </object>
           <packing>
             <property name="left_attach">1</property>
             <property name="right_attach">2</property>
@@ -136,13 +192,13 @@ Media Independent Interface (MII)</property>
           </packing>
         </child>
         <child>
-          <widget class="GtkLabel" id="label27">
+          <object class="GtkLabel" id="label27">
             <property name="visible">True</property>
             <property name="xalign">0</property>
             <property name="label" translatable="yes">_Cloned MAC address:</property>
             <property name="use_underline">True</property>
             <property name="mnemonic_widget">wired_cloned_mac</property>
-          </widget>
+          </object>
           <packing>
             <property name="top_attach">5</property>
             <property name="bottom_attach">6</property>
@@ -151,11 +207,11 @@ Media Independent Interface (MII)</property>
           </packing>
         </child>
         <child>
-          <widget class="GtkEntry" id="wired_cloned_mac">
+          <object class="GtkEntry" id="wired_cloned_mac">
             <property name="visible">True</property>
             <property name="can_focus">True</property>
-            <property name="tooltip" translatable="yes">The MAC address entered here will be used as hardware address for the network device this connection is activated on.  This feature is known as MAC cloning or spoofing.  Example: 00:11:22:33:44:55</property>
-          </widget>
+            <property name="tooltip_text" translatable="yes">The MAC address entered here will be used as hardware address for the network device this connection is activated on.  This feature is known as MAC cloning or spoofing.  Example: 00:11:22:33:44:55</property>
+          </object>
           <packing>
             <property name="left_attach">1</property>
             <property name="right_attach">2</property>
@@ -165,13 +221,13 @@ Media Independent Interface (MII)</property>
           </packing>
         </child>
         <child>
-          <widget class="GtkLabel" id="label28">
+          <object class="GtkLabel" id="label28">
             <property name="visible">True</property>
             <property name="xalign">0</property>
             <property name="label" translatable="yes">MT_U:</property>
             <property name="use_underline">True</property>
             <property name="mnemonic_widget">wired_mtu</property>
-          </widget>
+          </object>
           <packing>
             <property name="top_attach">6</property>
             <property name="bottom_attach">7</property>
@@ -180,32 +236,32 @@ Media Independent Interface (MII)</property>
           </packing>
         </child>
         <child>
-          <widget class="GtkHBox" id="hbox1">
+          <object class="GtkHBox" id="hbox1">
             <property name="visible">True</property>
             <property name="spacing">6</property>
             <child>
-              <widget class="GtkSpinButton" id="wired_mtu">
+              <object class="GtkSpinButton" id="wired_mtu">
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
-                <property name="adjustment">0 0 10000 1 10 10</property>
+                <property name="adjustment">adjustment1</property>
                 <property name="climb_rate">1</property>
-              </widget>
+              </object>
               <packing>
                 <property name="position">0</property>
               </packing>
             </child>
             <child>
-              <widget class="GtkLabel" id="label29">
+              <object class="GtkLabel" id="label29">
                 <property name="visible">True</property>
                 <property name="label" translatable="yes">bytes</property>
-              </widget>
+              </object>
               <packing>
                 <property name="expand">False</property>
                 <property name="fill">False</property>
                 <property name="position">1</property>
               </packing>
             </child>
-          </widget>
+          </object>
           <packing>
             <property name="left_attach">1</property>
             <property name="right_attach">2</property>
@@ -215,7 +271,7 @@ Media Independent Interface (MII)</property>
             <property name="y_options">GTK_FILL</property>
           </packing>
         </child>
-      </widget>
+      </object>
     </child>
-  </widget>
-</glade-interface>
+  </object>
+</interface>
diff --git a/src/connection-editor/ce-page-wireless-security.glade b/src/connection-editor/ce-page-wireless-security.ui
similarity index 62%
rename from src/connection-editor/ce-page-wireless-security.glade
rename to src/connection-editor/ce-page-wireless-security.ui
index d144d02..c961455 100644
--- a/src/connection-editor/ce-page-wireless-security.glade
+++ b/src/connection-editor/ce-page-wireless-security.ui
@@ -1,11 +1,22 @@
 <?xml version="1.0"?>
-<glade-interface>
-  <!-- interface-requires gtk+ 2.16 -->
+<interface>
+  <requires lib="gtk+" version="2.16"/>
   <!-- interface-naming-policy toplevel-contextual -->
-  <widget class="GtkWindow" id="wireless_security_page_widget">
+  <object class="GtkListStore" id="model1">
+    <columns>
+      <!-- column-name gchararray -->
+      <column type="gchararray"/>
+    </columns>
+    <data>
+      <row>
+        <col id="0">Foo</col>
+      </row>
+    </data>
+  </object>
+  <object class="GtkWindow" id="wireless_security_page_widget">
     <property name="title" translatable="yes">window2</property>
     <child>
-      <widget class="GtkTable" id="WirelessSecurityPage">
+      <object class="GtkTable" id="WirelessSecurityPage">
         <property name="visible">True</property>
         <property name="border_width">12</property>
         <property name="n_rows">2</property>
@@ -13,23 +24,29 @@
         <property name="column_spacing">12</property>
         <property name="row_spacing">6</property>
         <child>
-          <widget class="GtkLabel" id="wireless_security_combo_label">
+          <object class="GtkLabel" id="wireless_security_combo_label">
             <property name="visible">True</property>
             <property name="xalign">0</property>
             <property name="label" translatable="yes">_Security:</property>
             <property name="use_underline">True</property>
             <property name="mnemonic_widget">wireless_security_combo</property>
-          </widget>
+          </object>
           <packing>
             <property name="x_options">GTK_FILL</property>
             <property name="y_options"></property>
           </packing>
         </child>
         <child>
-          <widget class="GtkComboBox" id="wireless_security_combo">
+          <object class="GtkComboBox" id="wireless_security_combo">
             <property name="visible">True</property>
-            <property name="items">Foo</property>
-          </widget>
+            <property name="model">model1</property>
+            <child>
+              <object class="GtkCellRendererText" id="renderer1"/>
+              <attributes>
+                <attribute name="text">0</attribute>
+              </attributes>
+            </child>
+          </object>
           <packing>
             <property name="left_attach">1</property>
             <property name="right_attach">2</property>
@@ -37,19 +54,19 @@
           </packing>
         </child>
         <child>
-          <widget class="GtkVBox" id="wireless_security_vbox">
+          <object class="GtkVBox" id="wireless_security_vbox">
             <property name="visible">True</property>
             <child>
               <placeholder/>
             </child>
-          </widget>
+          </object>
           <packing>
             <property name="right_attach">2</property>
             <property name="top_attach">1</property>
             <property name="bottom_attach">2</property>
           </packing>
         </child>
-      </widget>
+      </object>
     </child>
-  </widget>
-</glade-interface>
+  </object>
+</interface>
diff --git a/src/connection-editor/ce-page-wireless.glade b/src/connection-editor/ce-page-wireless.ui
similarity index 70%
rename from src/connection-editor/ce-page-wireless.glade
rename to src/connection-editor/ce-page-wireless.ui
index cda9787..a5b3bb4 100644
--- a/src/connection-editor/ce-page-wireless.glade
+++ b/src/connection-editor/ce-page-wireless.ui
@@ -1,11 +1,66 @@
 <?xml version="1.0"?>
-<glade-interface>
-  <!-- interface-requires gtk+ 2.16 -->
+<interface>
+  <requires lib="gtk+" version="2.16"/>
   <!-- interface-naming-policy toplevel-contextual -->
-  <widget class="GtkWindow" id="wireless_page_widget">
+  <object class="GtkAdjustment" id="adjustment1">
+    <property name="upper">10000</property>
+    <property name="step_increment">1</property>
+    <property name="page_increment">10</property>
+    <property name="page_size">0</property>
+  </object>
+  <object class="GtkAdjustment" id="adjustment2">
+    <property name="upper">500</property>
+    <property name="step_increment">1</property>
+    <property name="page_increment">10</property>
+    <property name="page_size">0</property>
+  </object>
+  <object class="GtkAdjustment" id="adjustment3">
+    <property name="upper">500</property>
+    <property name="step_increment">1</property>
+    <property name="page_increment">10</property>
+    <property name="page_size">0</property>
+  </object>
+  <object class="GtkAdjustment" id="adjustment4">
+    <property name="upper">196</property>
+    <property name="step_increment">1</property>
+    <property name="page_increment">10</property>
+    <property name="page_size">0</property>
+  </object>
+  <object class="GtkListStore" id="model1">
+    <columns>
+      <!-- column-name gchararray -->
+      <column type="gchararray"/>
+    </columns>
+    <data>
+      <row>
+        <col id="0" translatable="yes">Automatic</col>
+      </row>
+      <row>
+        <col id="0" translatable="yes">A (5 GHz)</col>
+      </row>
+      <row>
+        <col id="0" translatable="yes">B/G (2.4 GHz)</col>
+      </row>
+    </data>
+  </object>
+  <object class="GtkListStore" id="model2">
+    <columns>
+      <!-- column-name gchararray -->
+      <column type="gchararray"/>
+    </columns>
+    <data>
+      <row>
+        <col id="0" translatable="yes">Infrastructure</col>
+      </row>
+      <row>
+        <col id="0" translatable="yes">Ad-hoc</col>
+      </row>
+    </data>
+  </object>
+  <object class="GtkWindow" id="wireless_page_widget">
     <property name="title" translatable="yes">window2</property>
     <child>
-      <widget class="GtkTable" id="WirelessPage">
+      <object class="GtkTable" id="WirelessPage">
         <property name="visible">True</property>
         <property name="border_width">12</property>
         <property name="n_rows">9</property>
@@ -13,33 +68,33 @@
         <property name="column_spacing">12</property>
         <property name="row_spacing">6</property>
         <child>
-          <widget class="GtkHBox" id="wireless_mtu_hbox">
+          <object class="GtkHBox" id="wireless_mtu_hbox">
             <property name="visible">True</property>
             <property name="spacing">6</property>
             <child>
-              <widget class="GtkSpinButton" id="wireless_mtu">
+              <object class="GtkSpinButton" id="wireless_mtu">
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
-                <property name="adjustment">0 0 10000 1 10 10</property>
+                <property name="adjustment">adjustment1</property>
                 <property name="climb_rate">1</property>
-              </widget>
+              </object>
               <packing>
                 <property name="position">0</property>
               </packing>
             </child>
             <child>
-              <widget class="GtkLabel" id="mtu_units">
+              <object class="GtkLabel" id="mtu_units">
                 <property name="visible">True</property>
                 <property name="xalign">0</property>
                 <property name="label" translatable="yes">bytes</property>
-              </widget>
+              </object>
               <packing>
                 <property name="expand">False</property>
                 <property name="fill">False</property>
                 <property name="position">1</property>
               </packing>
             </child>
-          </widget>
+          </object>
           <packing>
             <property name="left_attach">1</property>
             <property name="right_attach">2</property>
@@ -50,13 +105,13 @@
           </packing>
         </child>
         <child>
-          <widget class="GtkLabel" id="wireless_mtu_label">
+          <object class="GtkLabel" id="wireless_mtu_label">
             <property name="visible">True</property>
             <property name="xalign">0</property>
             <property name="label" translatable="yes">MT_U:</property>
             <property name="use_underline">True</property>
             <property name="mnemonic_widget">wireless_mtu</property>
-          </widget>
+          </object>
           <packing>
             <property name="top_attach">9</property>
             <property name="bottom_attach">10</property>
@@ -65,11 +120,11 @@
           </packing>
         </child>
         <child>
-          <widget class="GtkEntry" id="wireless_device_mac">
+          <object class="GtkEntry" id="wireless_device_mac">
             <property name="visible">True</property>
             <property name="can_focus">True</property>
-            <property name="tooltip" translatable="yes">This option locks this connection to the network device specified by its permanent MAC address entered here.  Example: 00:11:22:33:44:55</property>
-          </widget>
+            <property name="tooltip_text" translatable="yes">This option locks this connection to the network device specified by its permanent MAC address entered here.  Example: 00:11:22:33:44:55</property>
+          </object>
           <packing>
             <property name="left_attach">1</property>
             <property name="right_attach">2</property>
@@ -79,13 +134,13 @@
           </packing>
         </child>
         <child>
-          <widget class="GtkLabel" id="wireless_device_mac_label">
+          <object class="GtkLabel" id="wireless_device_mac_label">
             <property name="visible">True</property>
             <property name="xalign">0</property>
             <property name="label" translatable="yes">_Device MAC address:</property>
             <property name="use_underline">True</property>
             <property name="mnemonic_widget">wireless_device_mac</property>
-          </widget>
+          </object>
           <packing>
             <property name="top_attach">7</property>
             <property name="bottom_attach">8</property>
@@ -94,11 +149,11 @@
           </packing>
         </child>
         <child>
-          <widget class="GtkEntry" id="wireless_cloned_mac">
+          <object class="GtkEntry" id="wireless_cloned_mac">
             <property name="visible">True</property>
             <property name="can_focus">True</property>
-            <property name="tooltip" translatable="yes">The MAC address entered here will be used as hardware address for the network device this connection is activated on.  This feature is known as MAC cloning or spoofing.  Example: 00:11:22:33:44:55</property>
-          </widget>
+            <property name="tooltip_text" translatable="yes">The MAC address entered here will be used as hardware address for the network device this connection is activated on.  This feature is known as MAC cloning or spoofing.  Example: 00:11:22:33:44:55</property>
+          </object>
           <packing>
             <property name="left_attach">1</property>
             <property name="right_attach">2</property>
@@ -108,13 +163,13 @@
           </packing>
         </child>
         <child>
-          <widget class="GtkLabel" id="wireless_cloned_mac_label">
+          <object class="GtkLabel" id="wireless_cloned_mac_label">
             <property name="visible">True</property>
             <property name="xalign">0</property>
             <property name="label" translatable="yes">_Cloned MAC address:</property>
             <property name="use_underline">True</property>
             <property name="mnemonic_widget">wireless_cloned_mac</property>
-          </widget>
+          </object>
           <packing>
             <property name="top_attach">8</property>
             <property name="bottom_attach">9</property>
@@ -123,33 +178,33 @@
           </packing>
         </child>
         <child>
-          <widget class="GtkHBox" id="wireless_tx_power_hbox">
+          <object class="GtkHBox" id="wireless_tx_power_hbox">
             <property name="visible">True</property>
             <property name="spacing">6</property>
             <child>
-              <widget class="GtkSpinButton" id="wireless_tx_power">
+              <object class="GtkSpinButton" id="wireless_tx_power">
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
-                <property name="adjustment">0 0 500 1 10 10</property>
+                <property name="adjustment">adjustment2</property>
                 <property name="climb_rate">1</property>
-              </widget>
+              </object>
               <packing>
                 <property name="position">0</property>
               </packing>
             </child>
             <child>
-              <widget class="GtkLabel" id="tx_power_units">
+              <object class="GtkLabel" id="tx_power_units">
                 <property name="visible">True</property>
                 <property name="xalign">0</property>
                 <property name="label" translatable="yes">mW</property>
-              </widget>
+              </object>
               <packing>
                 <property name="expand">False</property>
                 <property name="fill">False</property>
                 <property name="position">1</property>
               </packing>
             </child>
-          </widget>
+          </object>
           <packing>
             <property name="left_attach">1</property>
             <property name="right_attach">2</property>
@@ -160,13 +215,13 @@
           </packing>
         </child>
         <child>
-          <widget class="GtkLabel" id="wireless_tx_power_label">
+          <object class="GtkLabel" id="wireless_tx_power_label">
             <property name="visible">True</property>
             <property name="xalign">0</property>
             <property name="label" translatable="yes">Transmission po_wer:</property>
             <property name="use_underline">True</property>
             <property name="mnemonic_widget">wireless_tx_power</property>
-          </widget>
+          </object>
           <packing>
             <property name="top_attach">6</property>
             <property name="bottom_attach">7</property>
@@ -175,33 +230,33 @@
           </packing>
         </child>
         <child>
-          <widget class="GtkHBox" id="wireless_rate_hbox">
+          <object class="GtkHBox" id="wireless_rate_hbox">
             <property name="visible">True</property>
             <property name="spacing">6</property>
             <child>
-              <widget class="GtkSpinButton" id="wireless_rate">
+              <object class="GtkSpinButton" id="wireless_rate">
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
-                <property name="adjustment">0 0 500 1 10 10</property>
+                <property name="adjustment">adjustment3</property>
                 <property name="climb_rate">1</property>
-              </widget>
+              </object>
               <packing>
                 <property name="position">0</property>
               </packing>
             </child>
             <child>
-              <widget class="GtkLabel" id="rate_units">
+              <object class="GtkLabel" id="rate_units">
                 <property name="visible">True</property>
                 <property name="xalign">0</property>
                 <property name="label" translatable="yes">Mb/s</property>
-              </widget>
+              </object>
               <packing>
                 <property name="expand">False</property>
                 <property name="fill">False</property>
                 <property name="position">1</property>
               </packing>
             </child>
-          </widget>
+          </object>
           <packing>
             <property name="left_attach">1</property>
             <property name="right_attach">2</property>
@@ -212,13 +267,13 @@
           </packing>
         </child>
         <child>
-          <widget class="GtkLabel" id="wireless_rate_label">
+          <object class="GtkLabel" id="wireless_rate_label">
             <property name="visible">True</property>
             <property name="xalign">0</property>
             <property name="label" translatable="yes">_Rate:</property>
             <property name="use_underline">True</property>
             <property name="mnemonic_widget">wireless_rate</property>
-          </widget>
+          </object>
           <packing>
             <property name="top_attach">5</property>
             <property name="bottom_attach">6</property>
@@ -227,11 +282,11 @@
           </packing>
         </child>
         <child>
-          <widget class="GtkEntry" id="wireless_bssid">
+          <object class="GtkEntry" id="wireless_bssid">
             <property name="visible">True</property>
             <property name="can_focus">True</property>
-            <property name="tooltip" translatable="yes">This option locks this connection to the wireless access point (AP) specified by the BSSID entered here.  Example: 00:11:22:33:44:55</property>
-          </widget>
+            <property name="tooltip_text" translatable="yes">This option locks this connection to the wireless access point (AP) specified by the BSSID entered here.  Example: 00:11:22:33:44:55</property>
+          </object>
           <packing>
             <property name="left_attach">1</property>
             <property name="right_attach">2</property>
@@ -241,10 +296,10 @@
           </packing>
         </child>
         <child>
-          <widget class="GtkEntry" id="wireless_ssid">
+          <object class="GtkEntry" id="wireless_ssid">
             <property name="visible">True</property>
             <property name="can_focus">True</property>
-          </widget>
+          </object>
           <packing>
             <property name="left_attach">1</property>
             <property name="right_attach">2</property>
@@ -252,13 +307,13 @@
           </packing>
         </child>
         <child>
-          <widget class="GtkLabel" id="wireless_bssid_label">
+          <object class="GtkLabel" id="wireless_bssid_label">
             <property name="visible">True</property>
             <property name="xalign">0</property>
             <property name="label" translatable="yes">_BSSID:</property>
             <property name="use_underline">True</property>
             <property name="mnemonic_widget">wireless_bssid</property>
-          </widget>
+          </object>
           <packing>
             <property name="top_attach">4</property>
             <property name="bottom_attach">5</property>
@@ -267,12 +322,12 @@
           </packing>
         </child>
         <child>
-          <widget class="GtkSpinButton" id="wireless_channel">
+          <object class="GtkSpinButton" id="wireless_channel">
             <property name="visible">True</property>
             <property name="can_focus">True</property>
-            <property name="adjustment">0 0 196 1 10 10</property>
+            <property name="adjustment">adjustment4</property>
             <property name="climb_rate">1</property>
-          </widget>
+          </object>
           <packing>
             <property name="left_attach">1</property>
             <property name="right_attach">2</property>
@@ -282,13 +337,13 @@
           </packing>
         </child>
         <child>
-          <widget class="GtkLabel" id="wireless_channel_label">
+          <object class="GtkLabel" id="wireless_channel_label">
             <property name="visible">True</property>
             <property name="xalign">0</property>
             <property name="label" translatable="yes">C_hannel:</property>
             <property name="use_underline">True</property>
             <property name="mnemonic_widget">wireless_channel</property>
-          </widget>
+          </object>
           <packing>
             <property name="top_attach">3</property>
             <property name="bottom_attach">4</property>
@@ -297,12 +352,16 @@
           </packing>
         </child>
         <child>
-          <widget class="GtkComboBox" id="wireless_band">
+          <object class="GtkComboBox" id="wireless_band">
             <property name="visible">True</property>
-            <property name="items" translatable="yes">Automatic
-A (5 GHz)
-B/G (2.4 GHz)</property>
-          </widget>
+            <property name="model">model1</property>
+            <child>
+              <object class="GtkCellRendererText" id="renderer1"/>
+              <attributes>
+                <attribute name="text">0</attribute>
+              </attributes>
+            </child>
+          </object>
           <packing>
             <property name="left_attach">1</property>
             <property name="right_attach">2</property>
@@ -313,13 +372,13 @@ B/G (2.4 GHz)</property>
           </packing>
         </child>
         <child>
-          <widget class="GtkLabel" id="wireless_band_label">
+          <object class="GtkLabel" id="wireless_band_label">
             <property name="visible">True</property>
             <property name="xalign">0</property>
             <property name="label" translatable="yes">Ban_d:</property>
             <property name="use_underline">True</property>
             <property name="mnemonic_widget">wireless_band</property>
-          </widget>
+          </object>
           <packing>
             <property name="top_attach">2</property>
             <property name="bottom_attach">3</property>
@@ -328,11 +387,16 @@ B/G (2.4 GHz)</property>
           </packing>
         </child>
         <child>
-          <widget class="GtkComboBox" id="wireless_mode">
+          <object class="GtkComboBox" id="wireless_mode">
             <property name="visible">True</property>
-            <property name="items" translatable="yes">Infrastructure
-Ad-hoc</property>
-          </widget>
+            <property name="model">model2</property>
+            <child>
+              <object class="GtkCellRendererText" id="renderer2"/>
+              <attributes>
+                <attribute name="text">0</attribute>
+              </attributes>
+            </child>
+          </object>
           <packing>
             <property name="left_attach">1</property>
             <property name="right_attach">2</property>
@@ -343,13 +407,13 @@ Ad-hoc</property>
           </packing>
         </child>
         <child>
-          <widget class="GtkLabel" id="wireless_mode_label">
+          <object class="GtkLabel" id="wireless_mode_label">
             <property name="visible">True</property>
             <property name="xalign">0</property>
             <property name="label" translatable="yes">M_ode:</property>
             <property name="use_underline">True</property>
             <property name="mnemonic_widget">wireless_mode</property>
-          </widget>
+          </object>
           <packing>
             <property name="top_attach">1</property>
             <property name="bottom_attach">2</property>
@@ -358,19 +422,19 @@ Ad-hoc</property>
           </packing>
         </child>
         <child>
-          <widget class="GtkLabel" id="wireless_ssid_label">
+          <object class="GtkLabel" id="wireless_ssid_label">
             <property name="visible">True</property>
             <property name="xalign">0</property>
             <property name="label" translatable="yes">_SSID:</property>
             <property name="use_underline">True</property>
             <property name="mnemonic_widget">wireless_ssid</property>
-          </widget>
+          </object>
           <packing>
             <property name="x_options">GTK_FILL</property>
             <property name="y_options"></property>
           </packing>
         </child>
-      </widget>
+      </object>
     </child>
-  </widget>
-</glade-interface>
+  </object>
+</interface>
diff --git a/src/connection-editor/ce-page.c b/src/connection-editor/ce-page.c
index bcb90de..4180484 100644
--- a/src/connection-editor/ce-page.c
+++ b/src/connection-editor/ce-page.c
@@ -244,8 +244,8 @@ dispose (GObject *object)
 	if (self->page)
 		g_object_unref (self->page);
 
-	if (self->xml)
-		g_object_unref (self->xml);
+	if (self->builder)
+		g_object_unref (self->builder);
 
 	if (self->proxy)
 		g_object_unref (self->proxy);
diff --git a/src/connection-editor/ce-page.h b/src/connection-editor/ce-page.h
index 08762e2..53c6ac5 100644
--- a/src/connection-editor/ce-page.h
+++ b/src/connection-editor/ce-page.h
@@ -27,7 +27,6 @@
 #include <glib-object.h>
 
 #include <gtk/gtk.h>
-#include <glade/glade.h>
 
 #include <dbus/dbus-glib.h>
 #include <nm-connection.h>
@@ -63,7 +62,7 @@ typedef struct {
 	GObject parent;
 
 	gboolean initialized;
-	GladeXML *xml;
+	GtkBuilder *builder;
 	GtkWidget *page;
 	char *title;
 
diff --git a/src/connection-editor/ce-vpn-wizard.glade b/src/connection-editor/ce-vpn-wizard.ui
similarity index 74%
rename from src/connection-editor/ce-vpn-wizard.glade
rename to src/connection-editor/ce-vpn-wizard.ui
index ab1ccbe..59fc3b8 100644
--- a/src/connection-editor/ce-vpn-wizard.glade
+++ b/src/connection-editor/ce-vpn-wizard.ui
@@ -1,8 +1,19 @@
 <?xml version="1.0"?>
-<glade-interface>
-  <!-- interface-requires gtk+ 2.16 -->
+<interface>
+  <requires lib="gtk+" version="2.16"/>
   <!-- interface-naming-policy toplevel-contextual -->
-  <widget class="GtkDialog" id="vpn_type_dialog">
+  <object class="GtkListStore" id="model1">
+    <columns>
+      <!-- column-name gchararray -->
+      <column type="gchararray"/>
+    </columns>
+    <data>
+      <row>
+        <col id="0" translatable="yes"> </col>
+      </row>
+    </data>
+  </object>
+  <object class="GtkDialog" id="vpn_type_dialog">
     <property name="border_width">5</property>
     <property name="title" translatable="yes"> </property>
     <property name="resizable">False</property>
@@ -12,32 +23,32 @@
     <property name="type_hint">dialog</property>
     <property name="has_separator">False</property>
     <child internal-child="vbox">
-      <widget class="GtkVBox" id="vbox2">
+      <object class="GtkVBox" id="vbox2">
         <property name="visible">True</property>
         <property name="spacing">2</property>
         <child>
-          <widget class="GtkHBox" id="hbox2">
+          <object class="GtkHBox" id="hbox2">
             <property name="visible">True</property>
             <property name="border_width">5</property>
             <property name="spacing">12</property>
             <child>
-              <widget class="GtkImage" id="image2">
+              <object class="GtkImage" id="image2">
                 <property name="visible">True</property>
                 <property name="yalign">0</property>
                 <property name="stock">gtk-dialog-question</property>
                 <property name="icon-size">6</property>
-              </widget>
+              </object>
               <packing>
                 <property name="expand">False</property>
                 <property name="position">0</property>
               </packing>
             </child>
             <child>
-              <widget class="GtkVBox" id="vbox3">
+              <object class="GtkVBox" id="vbox3">
                 <property name="visible">True</property>
                 <property name="spacing">12</property>
                 <child>
-                  <widget class="GtkLabel" id="label1">
+                  <object class="GtkLabel" id="label1">
                     <property name="visible">True</property>
                     <property name="xalign">0</property>
                     <property name="label" translatable="yes">&lt;span weight="bold" size="larger"&gt;Choose a VPN Connection Type&lt;/span&gt;
@@ -45,7 +56,7 @@
 Select the type of VPN you wish to use for the new connection.  If the type of VPN connection you wish to create does not appear in the list, you may not have the correct VPN plugin installed.</property>
                     <property name="use_markup">True</property>
                     <property name="wrap">True</property>
-                  </widget>
+                  </object>
                   <packing>
                     <property name="expand">False</property>
                     <property name="fill">False</property>
@@ -53,30 +64,36 @@ Select the type of VPN you wish to use for the new connection.  If the type of V
                   </packing>
                 </child>
                 <child>
-                  <widget class="GtkVBox" id="vpn_vbox">
+                  <object class="GtkVBox" id="vpn_vbox">
                     <property name="visible">True</property>
                     <property name="spacing">6</property>
                     <child>
-                      <widget class="GtkComboBox" id="vpn_type_combo">
+                      <object class="GtkComboBox" id="vpn_type_combo">
                         <property name="visible">True</property>
-                        <property name="items" translatable="yes"> </property>
-                      </widget>
+                        <property name="model">model1</property>
+                        <child>
+                          <object class="GtkCellRendererText" id="renderer1"/>
+                          <attributes>
+                            <attribute name="text">0</attribute>
+                          </attributes>
+                        </child>
+                      </object>
                       <packing>
                         <property name="position">0</property>
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkLabel" id="vpn_desc_label">
+                      <object class="GtkLabel" id="vpn_desc_label">
                         <property name="visible">True</property>
                         <property name="xalign">0</property>
                         <property name="use_markup">True</property>
                         <property name="wrap">True</property>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="position">1</property>
                       </packing>
                     </child>
-                  </widget>
+                  </object>
                   <packing>
                     <property name="expand">False</property>
                     <property name="fill">False</property>
@@ -84,32 +101,31 @@ Select the type of VPN you wish to use for the new connection.  If the type of V
                     <property name="position">1</property>
                   </packing>
                 </child>
-              </widget>
+              </object>
               <packing>
                 <property name="position">1</property>
               </packing>
             </child>
-          </widget>
+          </object>
           <packing>
             <property name="expand">False</property>
             <property name="position">1</property>
           </packing>
         </child>
         <child internal-child="action_area">
-          <widget class="GtkHButtonBox" id="hbuttonbox1">
+          <object class="GtkHButtonBox" id="hbuttonbox1">
             <property name="visible">True</property>
             <property name="layout_style">end</property>
             <child>
-              <widget class="GtkButton" id="cancel_button">
+              <object class="GtkButton" id="cancel_button">
                 <property name="label">gtk-cancel</property>
-                <property name="response_id">-6</property>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="can_default">True</property>
                 <property name="has_default">True</property>
                 <property name="receives_default">False</property>
                 <property name="use_stock">True</property>
-              </widget>
+              </object>
               <packing>
                 <property name="expand">False</property>
                 <property name="fill">False</property>
@@ -117,28 +133,31 @@ Select the type of VPN you wish to use for the new connection.  If the type of V
               </packing>
             </child>
             <child>
-              <widget class="GtkButton" id="create_button">
-                <property name="label" translatable="yes">Createâ?¦</property>
-                <property name="response_id">-5</property>
+              <object class="GtkButton" id="create_button">
+                <property name="label" translatable="yes">Create&#x2026;</property>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="can_default">True</property>
                 <property name="receives_default">False</property>
-              </widget>
+              </object>
               <packing>
                 <property name="expand">False</property>
                 <property name="fill">False</property>
                 <property name="position">1</property>
               </packing>
             </child>
-          </widget>
+          </object>
           <packing>
             <property name="expand">False</property>
             <property name="pack_type">end</property>
             <property name="position">0</property>
           </packing>
         </child>
-      </widget>
+      </object>
     </child>
-  </widget>
-</glade-interface>
+    <action-widgets>
+      <action-widget response="-6">cancel_button</action-widget>
+      <action-widget response="-5">create_button</action-widget>
+    </action-widgets>
+  </object>
+</interface>
diff --git a/src/connection-editor/ip4-routes-dialog.c b/src/connection-editor/ip4-routes-dialog.c
index 20f1fe8..64c9d5f 100644
--- a/src/connection-editor/ip4-routes-dialog.c
+++ b/src/connection-editor/ip4-routes-dialog.c
@@ -28,7 +28,6 @@
 #include <stdlib.h>
 #include <string.h>
 
-#include <glade/glade.h>
 #include <glib/gi18n.h>
 
 #include <nm-utils.h>
@@ -142,7 +141,7 @@ get_one_addr (GtkTreeModel *model,
 static void
 validate (GtkWidget *dialog)
 {
-	GladeXML *xml;
+	GtkBuilder *builder;
 	GtkWidget *widget;
 	GtkTreeModel *model;
 	GtkTreeIter tree_iter;
@@ -150,11 +149,11 @@ validate (GtkWidget *dialog)
 
 	g_return_if_fail (dialog != NULL);
 
-	xml = g_object_get_data (G_OBJECT (dialog), "glade-xml");
-	g_return_if_fail (xml != NULL);
-	g_return_if_fail (GLADE_IS_XML (xml));
+	builder = g_object_get_data (G_OBJECT (dialog), "builder");
+	g_return_if_fail (builder != NULL);
+	g_return_if_fail (GTK_IS_BUILDER (builder));
 
-	widget = glade_xml_get_widget (xml, "ip4_routes");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "ip4_routes"));
 	model = gtk_tree_view_get_model (GTK_TREE_VIEW (widget));
 	iter_valid = gtk_tree_model_get_iter_first (model, &tree_iter);
 
@@ -182,14 +181,14 @@ validate (GtkWidget *dialog)
 	valid = TRUE;
 
 done:
-	widget = glade_xml_get_widget (xml, "ok_button");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "ok_button"));
 	gtk_widget_set_sensitive (widget, valid);
 }
 
 static void
 route_add_clicked (GtkButton *button, gpointer user_data)
 {
-	GladeXML *xml = GLADE_XML (user_data);
+	GtkBuilder *builder = GTK_BUILDER (user_data);
 	GtkWidget *widget;
 	GtkListStore *store;
 	GtkTreeIter iter;
@@ -198,7 +197,7 @@ route_add_clicked (GtkButton *button, gpointer user_data)
 	GtkTreePath *path;
 	GList *cells;
 
-	widget = glade_xml_get_widget (xml, "ip4_routes");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "ip4_routes"));
 	store = GTK_LIST_STORE (gtk_tree_view_get_model (GTK_TREE_VIEW (widget)));
 	gtk_list_store_append (store, &iter);
 	gtk_list_store_set (store, &iter, COL_ADDRESS, "", -1);
@@ -219,13 +218,13 @@ route_add_clicked (GtkButton *button, gpointer user_data)
 	g_list_free (cells);
 	gtk_tree_path_free (path);
 
-	validate (glade_xml_get_widget (xml, "ip4_routes_dialog"));
+	validate (GTK_WIDGET (gtk_builder_get_object (builder, "ip4_routes_dialog")));
 }
 
 static void
 route_delete_clicked (GtkButton *button, gpointer user_data)
 {
-	GladeXML *xml = GLADE_XML (user_data);
+	GtkBuilder *builder = GTK_BUILDER (user_data);
 	GtkTreeView *treeview;
 	GtkTreeSelection *selection;
 	GList *selected_rows;
@@ -233,7 +232,7 @@ route_delete_clicked (GtkButton *button, gpointer user_data)
 	GtkTreeIter iter;
 	int num_rows;
 
-	treeview = GTK_TREE_VIEW (glade_xml_get_widget (xml, "ip4_routes"));
+	treeview = GTK_TREE_VIEW (GTK_WIDGET (gtk_builder_get_object (builder, "ip4_routes")));
 
 	selection = gtk_tree_view_get_selection (treeview);
 	if (gtk_tree_selection_count_selected_rows (selection) != 1)
@@ -255,7 +254,7 @@ route_delete_clicked (GtkButton *button, gpointer user_data)
 		gtk_tree_selection_select_iter (selection, &iter);
 	}
 
-	validate (glade_xml_get_widget (xml, "ip4_routes_dialog"));
+	validate (GTK_WIDGET (gtk_builder_get_object (builder, "ip4_routes_dialog")));
 }
 
 static void
@@ -277,7 +276,7 @@ cell_edited (GtkCellRendererText *cell,
              const gchar *new_text,
              gpointer user_data)
 {
-	GladeXML *xml = GLADE_XML (user_data);
+	GtkBuilder *builder = GTK_BUILDER (user_data);
 	GtkWidget *widget, *dialog;
 	GtkListStore *store;
 	GtkTreePath *path;
@@ -286,7 +285,7 @@ cell_edited (GtkCellRendererText *cell,
 	GtkTreeViewColumn *next_col;
 	GtkCellRenderer *next_cell;
 
-	widget = glade_xml_get_widget (xml, "ip4_routes");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "ip4_routes"));
 	store = GTK_LIST_STORE (gtk_tree_view_get_model (GTK_TREE_VIEW (widget)));
 	path = gtk_tree_path_new_from_string (path_string);
 	column = GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (cell), "column"));
@@ -297,7 +296,7 @@ cell_edited (GtkCellRendererText *cell,
 	/* Move focus to the next column */
 	column = (column >= COL_LAST) ? 0 : column + 1;
 	next_col = gtk_tree_view_get_column (GTK_TREE_VIEW (widget), column);
-	dialog = glade_xml_get_widget (xml, "ip4_routes_dialog");
+	dialog = GTK_WIDGET (gtk_builder_get_object (builder, "ip4_routes_dialog"));
 	next_cell = g_slist_nth_data (g_object_get_data (G_OBJECT (dialog), "renderers"), column);
 
 	gtk_tree_view_set_cursor_on_cell (GTK_TREE_VIEW (widget), path, next_col, next_cell, TRUE);
@@ -419,7 +418,7 @@ uint_cell_editing_started (GtkCellRenderer *cell,
 GtkWidget *
 ip4_routes_dialog_new (NMSettingIP4Config *s_ip4, gboolean automatic)
 {
-	GladeXML *xml;
+	GtkBuilder *builder;
 	GtkWidget *dialog, *widget, *ok_button;
 	GtkListStore *store;
 	GtkTreeIter model_iter;
@@ -429,26 +428,30 @@ ip4_routes_dialog_new (NMSettingIP4Config *s_ip4, gboolean automatic)
 	GtkCellRenderer *renderer;
 	int i;
 	GSList *renderers = NULL;
+	GError* error = NULL;
 
-	xml = glade_xml_new (GLADEDIR "/ce-page-ip4.glade", "ip4_routes_dialog", NULL);
-	if (!xml) {
-		g_warning ("%s: Couldn't load ip4 page glade file.", __func__);
+	builder = gtk_builder_new ();
+
+	if (!gtk_builder_add_from_file (builder, UIDIR "/ce-page-ip4.ui", &error))
+	{
+		g_warning ("Couldn't load builder file: %s", error->message);
+		g_error_free (error);
 		return NULL;
 	}
 
-	dialog = glade_xml_get_widget (xml, "ip4_routes_dialog");
+	dialog = GTK_WIDGET (gtk_builder_get_object (builder, "ip4_routes_dialog"));
 	if (!dialog) {
-		g_warning ("%s: Couldn't load ip4 routes dialog from glade file.", __func__);
-		g_object_unref (xml);
+		g_warning ("%s: Couldn't load ip4 routes dialog from .ui file.", __func__);
+		g_object_unref (builder);
 		return NULL;
 	}
 
 	gtk_window_set_modal (GTK_WINDOW (dialog), TRUE);
 
-	g_object_set_data_full (G_OBJECT (dialog), "glade-xml",
-	                        xml, (GDestroyNotify) g_object_unref);
+	g_object_set_data_full (G_OBJECT (dialog), "builder",
+	                        builder, (GDestroyNotify) g_object_unref);
 
-	ok_button = glade_xml_get_widget (xml, "ok_button");
+	ok_button = GTK_WIDGET (gtk_builder_get_object (builder, "ok_button"));
 
 	store = gtk_list_store_new (4, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING);
 
@@ -485,14 +488,14 @@ ip4_routes_dialog_new (NMSettingIP4Config *s_ip4, gboolean automatic)
 		}
 	}
 
-	widget = glade_xml_get_widget (xml, "ip4_routes");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "ip4_routes"));
 	gtk_tree_view_set_model (GTK_TREE_VIEW (widget), GTK_TREE_MODEL (store));
 	g_object_unref (store);
 
 	/* IP Address column */
 	renderer = gtk_cell_renderer_text_new ();
 	g_object_set (renderer, "editable", TRUE, NULL);
-	g_signal_connect (renderer, "edited", G_CALLBACK (cell_edited), xml);
+	g_signal_connect (renderer, "edited", G_CALLBACK (cell_edited), builder);
 	g_object_set_data (G_OBJECT (renderer), "column", GUINT_TO_POINTER (COL_ADDRESS));
 	g_signal_connect (renderer, "editing-started", G_CALLBACK (ip4_cell_editing_started), ok_button);
 	renderers = g_slist_append (renderers, renderer);
@@ -508,7 +511,7 @@ ip4_routes_dialog_new (NMSettingIP4Config *s_ip4, gboolean automatic)
 	/* Prefix column */
 	renderer = gtk_cell_renderer_text_new ();
 	g_object_set (renderer, "editable", TRUE, NULL);
-	g_signal_connect (renderer, "edited", G_CALLBACK (cell_edited), xml);
+	g_signal_connect (renderer, "edited", G_CALLBACK (cell_edited), builder);
 	g_object_set_data (G_OBJECT (renderer), "column", GUINT_TO_POINTER (COL_PREFIX));
 	g_signal_connect (renderer, "editing-started", G_CALLBACK (ip4_cell_editing_started), ok_button);
 	renderers = g_slist_append (renderers, renderer);
@@ -524,7 +527,7 @@ ip4_routes_dialog_new (NMSettingIP4Config *s_ip4, gboolean automatic)
 	/* Gateway column */
 	renderer = gtk_cell_renderer_text_new ();
 	g_object_set (renderer, "editable", TRUE, NULL);
-	g_signal_connect (renderer, "edited", G_CALLBACK (cell_edited), xml);
+	g_signal_connect (renderer, "edited", G_CALLBACK (cell_edited), builder);
 	g_object_set_data (G_OBJECT (renderer), "column", GUINT_TO_POINTER (COL_NEXT_HOP));
 	g_signal_connect (renderer, "editing-started", G_CALLBACK (ip4_cell_editing_started), ok_button);
 	renderers = g_slist_append (renderers, renderer);
@@ -540,7 +543,7 @@ ip4_routes_dialog_new (NMSettingIP4Config *s_ip4, gboolean automatic)
 	/* Metric column */
 	renderer = gtk_cell_renderer_text_new ();
 	g_object_set (renderer, "editable", TRUE, NULL);
-	g_signal_connect (renderer, "edited", G_CALLBACK (cell_edited), xml);
+	g_signal_connect (renderer, "edited", G_CALLBACK (cell_edited), builder);
 	g_object_set_data (G_OBJECT (renderer), "column", GUINT_TO_POINTER (COL_METRIC));
 	g_signal_connect (renderer, "editing-started", G_CALLBACK (uint_cell_editing_started), ok_button);
 	renderers = g_slist_append (renderers, renderer);
@@ -558,22 +561,22 @@ ip4_routes_dialog_new (NMSettingIP4Config *s_ip4, gboolean automatic)
 	selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (widget));
 	g_signal_connect (selection, "changed",
 	                  G_CALLBACK (list_selection_changed),
-	                  glade_xml_get_widget (xml, "ip4_route_delete_button"));
+	                  GTK_WIDGET (gtk_builder_get_object (builder, "ip4_route_delete_button")));
 
-	widget = glade_xml_get_widget (xml, "ip4_route_add_button");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "ip4_route_add_button"));
 	gtk_widget_set_sensitive (widget, TRUE);
-	g_signal_connect (widget, "clicked", G_CALLBACK (route_add_clicked), xml);
+	g_signal_connect (widget, "clicked", G_CALLBACK (route_add_clicked), builder);
 
-	widget = glade_xml_get_widget (xml, "ip4_route_delete_button");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "ip4_route_delete_button"));
 	gtk_widget_set_sensitive (widget, FALSE);
-	g_signal_connect (widget, "clicked", G_CALLBACK (route_delete_clicked), xml);
+	g_signal_connect (widget, "clicked", G_CALLBACK (route_delete_clicked), builder);
 
-	widget = glade_xml_get_widget (xml, "ip4_ignore_auto_routes");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "ip4_ignore_auto_routes"));
 	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget),
 	                              nm_setting_ip4_config_get_ignore_auto_routes (s_ip4));
 	gtk_widget_set_sensitive (widget, automatic);
 
-	widget = glade_xml_get_widget (xml, "ip4_never_default");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "ip4_never_default"));
 	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget),
 	                              nm_setting_ip4_config_get_never_default (s_ip4));
 
@@ -586,7 +589,7 @@ ip4_routes_dialog_new (NMSettingIP4Config *s_ip4, gboolean automatic)
 void
 ip4_routes_dialog_update_setting (GtkWidget *dialog, NMSettingIP4Config *s_ip4)
 {
-	GladeXML *xml;
+	GtkBuilder *builder;
 	GtkWidget *widget;
 	GtkTreeModel *model;
 	GtkTreeIter tree_iter;
@@ -595,11 +598,11 @@ ip4_routes_dialog_update_setting (GtkWidget *dialog, NMSettingIP4Config *s_ip4)
 	g_return_if_fail (dialog != NULL);
 	g_return_if_fail (s_ip4 != NULL);
 
-	xml = g_object_get_data (G_OBJECT (dialog), "glade-xml");
-	g_return_if_fail (xml != NULL);
-	g_return_if_fail (GLADE_IS_XML (xml));
+	builder = g_object_get_data (G_OBJECT (dialog), "builder");
+	g_return_if_fail (builder != NULL);
+	g_return_if_fail (GTK_IS_BUILDER (builder));
 
-	widget = glade_xml_get_widget (xml, "ip4_routes");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "ip4_routes"));
 	model = gtk_tree_view_get_model (GTK_TREE_VIEW (widget));
 	iter_valid = gtk_tree_model_get_iter_first (model, &tree_iter);
 
@@ -645,12 +648,12 @@ ip4_routes_dialog_update_setting (GtkWidget *dialog, NMSettingIP4Config *s_ip4)
 		iter_valid = gtk_tree_model_iter_next (model, &tree_iter);
 	}
 
-	widget = glade_xml_get_widget (xml, "ip4_ignore_auto_routes");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "ip4_ignore_auto_routes"));
 	g_object_set (s_ip4, NM_SETTING_IP4_CONFIG_IGNORE_AUTO_ROUTES,
 	              gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)),
 	              NULL);
 
-	widget = glade_xml_get_widget (xml, "ip4_never_default");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "ip4_never_default"));
 	g_object_set (s_ip4, NM_SETTING_IP4_CONFIG_NEVER_DEFAULT,
 	              gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)),
 	              NULL);
diff --git a/src/connection-editor/ip6-routes-dialog.c b/src/connection-editor/ip6-routes-dialog.c
index 9470516..3798f69 100644
--- a/src/connection-editor/ip6-routes-dialog.c
+++ b/src/connection-editor/ip6-routes-dialog.c
@@ -28,7 +28,6 @@
 #include <stdlib.h>
 #include <string.h>
 
-#include <glade/glade.h>
 #include <glib/gi18n.h>
 
 #include <nm-utils.h>
@@ -98,7 +97,7 @@ get_one_addr (GtkTreeModel *model,
 static void
 validate (GtkWidget *dialog)
 {
-	GladeXML *xml;
+	GtkBuilder *builder;
 	GtkWidget *widget;
 	GtkTreeModel *model;
 	GtkTreeIter tree_iter;
@@ -106,11 +105,11 @@ validate (GtkWidget *dialog)
 
 	g_return_if_fail (dialog != NULL);
 
-	xml = g_object_get_data (G_OBJECT (dialog), "glade-xml");
-	g_return_if_fail (xml != NULL);
-	g_return_if_fail (GLADE_IS_XML (xml));
+	builder = g_object_get_data (G_OBJECT (dialog), "builder");
+	g_return_if_fail (builder != NULL);
+	g_return_if_fail (GTK_IS_BUILDER (builder));
 
-	widget = glade_xml_get_widget (xml, "ip6_routes");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "ip6_routes"));
 	model = gtk_tree_view_get_model (GTK_TREE_VIEW (widget));
 	iter_valid = gtk_tree_model_get_iter_first (model, &tree_iter);
 
@@ -139,14 +138,14 @@ validate (GtkWidget *dialog)
 	valid = TRUE;
 
 done:
-	widget = glade_xml_get_widget (xml, "ok_button");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "ok_button"));
 	gtk_widget_set_sensitive (widget, valid);
 }
 
 static void
 route_add_clicked (GtkButton *button, gpointer user_data)
 {
-	GladeXML *xml = GLADE_XML (user_data);
+	GtkBuilder *builder = GTK_BUILDER (user_data);
 	GtkWidget *widget;
 	GtkListStore *store;
 	GtkTreeIter iter;
@@ -155,7 +154,7 @@ route_add_clicked (GtkButton *button, gpointer user_data)
 	GtkTreePath *path;
 	GList *cells;
 
-	widget = glade_xml_get_widget (xml, "ip6_routes");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "ip6_routes"));
 	store = GTK_LIST_STORE (gtk_tree_view_get_model (GTK_TREE_VIEW (widget)));
 	gtk_list_store_append (store, &iter);
 	gtk_list_store_set (store, &iter, COL_ADDRESS, "", -1);
@@ -176,13 +175,13 @@ route_add_clicked (GtkButton *button, gpointer user_data)
 	g_list_free (cells);
 	gtk_tree_path_free (path);
 
-	validate (glade_xml_get_widget (xml, "ip6_routes_dialog"));
+	validate (GTK_WIDGET (gtk_builder_get_object (builder, "ip6_routes_dialog")));
 }
 
 static void
 route_delete_clicked (GtkButton *button, gpointer user_data)
 {
-	GladeXML *xml = GLADE_XML (user_data);
+	GtkBuilder *builder = GTK_BUILDER (user_data);
 	GtkTreeView *treeview;
 	GtkTreeSelection *selection;
 	GList *selected_rows;
@@ -190,7 +189,7 @@ route_delete_clicked (GtkButton *button, gpointer user_data)
 	GtkTreeIter iter;
 	int num_rows;
 
-	treeview = GTK_TREE_VIEW (glade_xml_get_widget (xml, "ip6_routes"));
+	treeview = GTK_TREE_VIEW (GTK_WIDGET (gtk_builder_get_object (builder, "ip6_routes")));
 
 	selection = gtk_tree_view_get_selection (treeview);
 	if (gtk_tree_selection_count_selected_rows (selection) != 1)
@@ -212,7 +211,7 @@ route_delete_clicked (GtkButton *button, gpointer user_data)
 		gtk_tree_selection_select_iter (selection, &iter);
 	}
 
-	validate (glade_xml_get_widget (xml, "ip6_routes_dialog"));
+	validate (GTK_WIDGET (gtk_builder_get_object (builder, "ip6_routes_dialog")));
 }
 
 static void
@@ -234,7 +233,7 @@ cell_edited (GtkCellRendererText *cell,
              const gchar *new_text,
              gpointer user_data)
 {
-	GladeXML *xml = GLADE_XML (user_data);
+	GtkBuilder *builder = GTK_BUILDER (user_data);
 	GtkWidget *widget, *dialog;
 	GtkListStore *store;
 	GtkTreePath *path;
@@ -243,7 +242,7 @@ cell_edited (GtkCellRendererText *cell,
 	GtkTreeViewColumn *next_col;
 	GtkCellRenderer *next_cell;
 
-	widget = glade_xml_get_widget (xml, "ip6_routes");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "ip6_routes"));
 	store = GTK_LIST_STORE (gtk_tree_view_get_model (GTK_TREE_VIEW (widget)));
 	path = gtk_tree_path_new_from_string (path_string);
 	column = GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (cell), "column"));
@@ -254,7 +253,7 @@ cell_edited (GtkCellRendererText *cell,
 	/* Move focus to the next column */
 	column = (column >= COL_LAST) ? 0 : column + 1;
 	next_col = gtk_tree_view_get_column (GTK_TREE_VIEW (widget), column);
-	dialog = glade_xml_get_widget (xml, "ip6_routes_dialog");
+	dialog = GTK_WIDGET (gtk_builder_get_object (builder, "ip6_routes_dialog"));
 	next_cell = g_slist_nth_data (g_object_get_data (G_OBJECT (dialog), "renderers"), column);
 
 	gtk_tree_view_set_cursor_on_cell (GTK_TREE_VIEW (widget), path, next_col, next_cell, TRUE);
@@ -376,7 +375,7 @@ uint_cell_editing_started (GtkCellRenderer *cell,
 GtkWidget *
 ip6_routes_dialog_new (NMSettingIP6Config *s_ip6, gboolean automatic)
 {
-	GladeXML *xml;
+	GtkBuilder *builder;
 	GtkWidget *dialog, *widget, *ok_button;
 	GtkListStore *store;
 	GtkTreeIter model_iter;
@@ -386,26 +385,30 @@ ip6_routes_dialog_new (NMSettingIP6Config *s_ip6, gboolean automatic)
 	GtkCellRenderer *renderer;
 	int i;
 	GSList *renderers = NULL;
+	GError* error = NULL;
 
-	xml = glade_xml_new (GLADEDIR "/ce-page-ip6.glade", "ip6_routes_dialog", NULL);
-	if (!xml) {
-		g_warning ("%s: Couldn't load ip6 page glade file.", __func__);
+	builder = gtk_builder_new ();
+
+	if (!gtk_builder_add_from_file (builder, UIDIR "/ce-page-ip6.ui", &error))
+	{
+		g_warning ("Couldn't load builder file: %s", error->message);
+		g_error_free (error);
 		return NULL;
 	}
 
-	dialog = glade_xml_get_widget (xml, "ip6_routes_dialog");
+	dialog = GTK_WIDGET (gtk_builder_get_object (builder, "ip6_routes_dialog"));
 	if (!dialog) {
-		g_warning ("%s: Couldn't load ip6 routes dialog from glade file.", __func__);
-		g_object_unref (xml);
+		g_warning ("%s: Couldn't load ip6 routes dialog from .ui file.", __func__);
+		g_object_unref (builder);
 		return NULL;
 	}
 
 	gtk_window_set_modal (GTK_WINDOW (dialog), TRUE);
 
-	g_object_set_data_full (G_OBJECT (dialog), "glade-xml",
-	                        xml, (GDestroyNotify) g_object_unref);
+	g_object_set_data_full (G_OBJECT (dialog), "builder",
+	                        builder, (GDestroyNotify) g_object_unref);
 
-	ok_button = glade_xml_get_widget (xml, "ok_button");
+	ok_button = GTK_WIDGET (gtk_builder_get_object (builder, "ok_button"));
 
 	store = gtk_list_store_new (4, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING);
 
@@ -443,14 +446,14 @@ ip6_routes_dialog_new (NMSettingIP6Config *s_ip6, gboolean automatic)
 		}
 	}
 
-	widget = glade_xml_get_widget (xml, "ip6_routes");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "ip6_routes"));
 	gtk_tree_view_set_model (GTK_TREE_VIEW (widget), GTK_TREE_MODEL (store));
 	g_object_unref (store);
 
 	/* IP Address column */
 	renderer = gtk_cell_renderer_text_new ();
 	g_object_set (renderer, "editable", TRUE, NULL);
-	g_signal_connect (renderer, "edited", G_CALLBACK (cell_edited), xml);
+	g_signal_connect (renderer, "edited", G_CALLBACK (cell_edited), builder);
 	g_object_set_data (G_OBJECT (renderer), "column", GUINT_TO_POINTER (COL_ADDRESS));
 	g_signal_connect (renderer, "editing-started", G_CALLBACK (ip6_cell_editing_started), ok_button);
 	renderers = g_slist_append (renderers, renderer);
@@ -466,7 +469,7 @@ ip6_routes_dialog_new (NMSettingIP6Config *s_ip6, gboolean automatic)
 	/* Prefix column */
 	renderer = gtk_cell_renderer_text_new ();
 	g_object_set (renderer, "editable", TRUE, NULL);
-	g_signal_connect (renderer, "edited", G_CALLBACK (cell_edited), xml);
+	g_signal_connect (renderer, "edited", G_CALLBACK (cell_edited), builder);
 	g_object_set_data (G_OBJECT (renderer), "column", GUINT_TO_POINTER (COL_PREFIX));
 	g_signal_connect (renderer, "editing-started", G_CALLBACK (uint_cell_editing_started), ok_button);
 	renderers = g_slist_append (renderers, renderer);
@@ -482,7 +485,7 @@ ip6_routes_dialog_new (NMSettingIP6Config *s_ip6, gboolean automatic)
 	/* Gateway column */
 	renderer = gtk_cell_renderer_text_new ();
 	g_object_set (renderer, "editable", TRUE, NULL);
-	g_signal_connect (renderer, "edited", G_CALLBACK (cell_edited), xml);
+	g_signal_connect (renderer, "edited", G_CALLBACK (cell_edited), builder);
 	g_object_set_data (G_OBJECT (renderer), "column", GUINT_TO_POINTER (COL_NEXT_HOP));
 	g_signal_connect (renderer, "editing-started", G_CALLBACK (ip6_cell_editing_started), ok_button);
 	renderers = g_slist_append (renderers, renderer);
@@ -498,7 +501,7 @@ ip6_routes_dialog_new (NMSettingIP6Config *s_ip6, gboolean automatic)
 	/* Metric column */
 	renderer = gtk_cell_renderer_text_new ();
 	g_object_set (renderer, "editable", TRUE, NULL);
-	g_signal_connect (renderer, "edited", G_CALLBACK (cell_edited), xml);
+	g_signal_connect (renderer, "edited", G_CALLBACK (cell_edited), builder);
 	g_object_set_data (G_OBJECT (renderer), "column", GUINT_TO_POINTER (COL_METRIC));
 	g_signal_connect (renderer, "editing-started", G_CALLBACK (uint_cell_editing_started), ok_button);
 	renderers = g_slist_append (renderers, renderer);
@@ -516,22 +519,22 @@ ip6_routes_dialog_new (NMSettingIP6Config *s_ip6, gboolean automatic)
 	selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (widget));
 	g_signal_connect (selection, "changed",
 	                  G_CALLBACK (list_selection_changed),
-	                  glade_xml_get_widget (xml, "ip6_route_delete_button"));
+	                  GTK_WIDGET (gtk_builder_get_object (builder, "ip6_route_delete_button")));
 
-	widget = glade_xml_get_widget (xml, "ip6_route_add_button");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "ip6_route_add_button"));
 	gtk_widget_set_sensitive (widget, TRUE);
-	g_signal_connect (widget, "clicked", G_CALLBACK (route_add_clicked), xml);
+	g_signal_connect (widget, "clicked", G_CALLBACK (route_add_clicked), builder);
 
-	widget = glade_xml_get_widget (xml, "ip6_route_delete_button");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "ip6_route_delete_button"));
 	gtk_widget_set_sensitive (widget, FALSE);
-	g_signal_connect (widget, "clicked", G_CALLBACK (route_delete_clicked), xml);
+	g_signal_connect (widget, "clicked", G_CALLBACK (route_delete_clicked), builder);
 
-	widget = glade_xml_get_widget (xml, "ip6_ignore_auto_routes");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "ip6_ignore_auto_routes"));
 	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget),
 	                              nm_setting_ip6_config_get_ignore_auto_routes (s_ip6));
 	gtk_widget_set_sensitive (widget, automatic);
 
-	widget = glade_xml_get_widget (xml, "ip6_never_default");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "ip6_never_default"));
 	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget),
 	                              nm_setting_ip6_config_get_never_default (s_ip6));
 
@@ -544,7 +547,7 @@ ip6_routes_dialog_new (NMSettingIP6Config *s_ip6, gboolean automatic)
 void
 ip6_routes_dialog_update_setting (GtkWidget *dialog, NMSettingIP6Config *s_ip6)
 {
-	GladeXML *xml;
+	GtkBuilder *builder;
 	GtkWidget *widget;
 	GtkTreeModel *model;
 	GtkTreeIter tree_iter;
@@ -553,11 +556,11 @@ ip6_routes_dialog_update_setting (GtkWidget *dialog, NMSettingIP6Config *s_ip6)
 	g_return_if_fail (dialog != NULL);
 	g_return_if_fail (s_ip6 != NULL);
 
-	xml = g_object_get_data (G_OBJECT (dialog), "glade-xml");
-	g_return_if_fail (xml != NULL);
-	g_return_if_fail (GLADE_IS_XML (xml));
+	builder = g_object_get_data (G_OBJECT (dialog), "builder");
+	g_return_if_fail (builder != NULL);
+	g_return_if_fail (GTK_IS_BUILDER (builder));
 
-	widget = glade_xml_get_widget (xml, "ip6_routes");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "ip6_routes"));
 	model = gtk_tree_view_get_model (GTK_TREE_VIEW (widget));
 	iter_valid = gtk_tree_model_get_iter_first (model, &tree_iter);
 
@@ -604,12 +607,12 @@ ip6_routes_dialog_update_setting (GtkWidget *dialog, NMSettingIP6Config *s_ip6)
 		iter_valid = gtk_tree_model_iter_next (model, &tree_iter);
 	}
 
-	widget = glade_xml_get_widget (xml, "ip6_ignore_auto_routes");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "ip6_ignore_auto_routes"));
 	g_object_set (s_ip6, NM_SETTING_IP6_CONFIG_IGNORE_AUTO_ROUTES,
 	              gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)),
 	              NULL);
 
-	widget = glade_xml_get_widget (xml, "ip6_never_default");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "ip6_never_default"));
 	g_object_set (s_ip6, NM_SETTING_IP6_CONFIG_NEVER_DEFAULT,
 	              gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)),
 	              NULL);
diff --git a/src/connection-editor/nm-connection-editor.c b/src/connection-editor/nm-connection-editor.c
index 39c8b31..fa20f7e 100644
--- a/src/connection-editor/nm-connection-editor.c
+++ b/src/connection-editor/nm-connection-editor.c
@@ -115,7 +115,7 @@ ui_to_setting (NMConnectionEditor *editor)
 	s_con = NM_SETTING_CONNECTION (nm_connection_get_setting (editor->connection, NM_TYPE_SETTING_CONNECTION));
 	g_assert (s_con);
 
-	widget = glade_xml_get_widget (editor->xml, "connection_name");
+	widget = GTK_WIDGET (gtk_builder_get_object (editor->builder, "connection_name"));
 	name = gtk_entry_get_text (GTK_ENTRY (widget));
 
 	g_object_set (G_OBJECT (s_con), NM_SETTING_CONNECTION_ID, name, NULL);
@@ -124,7 +124,7 @@ ui_to_setting (NMConnectionEditor *editor)
 	if (!name || !strlen (name))
 		return FALSE;
 
-	widget = glade_xml_get_widget (editor->xml, "connection_autoconnect");
+	widget = GTK_WIDGET (gtk_builder_get_object (editor->builder, "connection_autoconnect"));
 	autoconnect = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget));
 	g_object_set (G_OBJECT (s_con), NM_SETTING_CONNECTION_AUTOCONNECT, autoconnect, NULL);
 
@@ -182,16 +182,16 @@ update_sensitivity (NMConnectionEditor *editor)
 	/* Cancel button is always sensitive */
 	gtk_widget_set_sensitive (GTK_WIDGET (editor->cancel_button), TRUE);
 
-	widget = glade_xml_get_widget (editor->xml, "connection_name_label");
+	widget = GTK_WIDGET (gtk_builder_get_object (editor->builder, "connection_name_label"));
 	gtk_widget_set_sensitive (widget, sensitive);
 
-	widget = glade_xml_get_widget (editor->xml, "connection_name");
+	widget = GTK_WIDGET (gtk_builder_get_object (editor->builder, "connection_name"));
 	gtk_widget_set_sensitive (widget, sensitive);
 
-	widget = glade_xml_get_widget (editor->xml, "connection_autoconnect");
+	widget = GTK_WIDGET (gtk_builder_get_object (editor->builder, "connection_autoconnect"));
 	gtk_widget_set_sensitive (widget, sensitive);
 
-	widget = glade_xml_get_widget (editor->xml, "connection_name");
+	widget = GTK_WIDGET (gtk_builder_get_object (editor->builder, "connection_name"));
 	gtk_widget_set_sensitive (widget, sensitive);
 
 	for (iter = editor->pages; iter; iter = g_slist_next (iter)) {
@@ -276,37 +276,43 @@ static void
 nm_connection_editor_init (NMConnectionEditor *editor)
 {
 	GtkWidget *dialog;
+	GError *error = NULL;
 
-	/* Yes, we mean applet.glade, not nm-connection-editor.glade. The wireless security bits
-	   are taken from applet.glade. */
-	if (!g_file_test (GLADEDIR "/applet.glade", G_FILE_TEST_EXISTS)) {
+	/* Yes, we mean applet.ui, not nm-connection-editor.ui. The wireless security bits
+	   are taken from applet.ui. */
+	if (!g_file_test (UIDIR "/applet.ui", G_FILE_TEST_EXISTS)) {
 		dialog = gtk_message_dialog_new (NULL, 0,
 		                                 GTK_MESSAGE_ERROR,
 		                                 GTK_BUTTONS_OK,
 		                                 "%s",
-		                                 _("The connection editor could not find some required resources (the NetworkManager applet glade file was not found)."));
+		                                 _("The connection editor could not find some required resources (the NetworkManager applet .ui file was not found)."));
 		gtk_dialog_run (GTK_DIALOG (dialog));
 		gtk_widget_destroy (dialog);
 		gtk_main_quit ();
 		return;
 	}
 
-	editor->xml = glade_xml_new (GLADEDIR "/nm-connection-editor.glade", "nm-connection-editor", NULL);
-	if (!editor->xml) {
+	editor->builder = gtk_builder_new();
+
+	if (!gtk_builder_add_from_file (editor->builder, UIDIR "/nm-connection-editor.ui", &error))
+	{
+		g_warning ("Couldn't load builder file: %s", error->message);
+		g_error_free (error);
+
 		dialog = gtk_message_dialog_new (NULL, 0,
 		                                 GTK_MESSAGE_ERROR,
 		                                 GTK_BUTTONS_OK,
 		                                 "%s",
-		                                 _("The connection editor could not find some required resources (the glade file was not found)."));
+		                                 _("The connection editor could not find some required resources (the .ui file was not found)."));
 		gtk_dialog_run (GTK_DIALOG (dialog));
 		gtk_widget_destroy (dialog);
 		gtk_main_quit ();
 		return;
 	}
 
-	editor->window = glade_xml_get_widget (editor->xml, "nm-connection-editor");
-	editor->cancel_button = glade_xml_get_widget (editor->xml, "cancel_button");
-	editor->system_checkbutton = glade_xml_get_widget (editor->xml, "system_checkbutton");
+	editor->window = GTK_WIDGET (gtk_builder_get_object (editor->builder, "nm-connection-editor"));
+	editor->cancel_button = GTK_WIDGET (gtk_builder_get_object (editor->builder, "cancel_button"));
+	editor->system_checkbutton = GTK_WIDGET (gtk_builder_get_object (editor->builder, "system_checkbutton"));
 }
 
 static void
@@ -355,9 +361,9 @@ dispose (GObject *object)
 		gtk_widget_destroy (editor->window);
 		editor->window = NULL;
 	}
-	if (editor->xml) {
-		g_object_unref (editor->xml);
-		editor->xml = NULL;
+	if (editor->builder) {
+		g_object_unref (editor->builder);
+		editor->builder = NULL;
 	}
 
 	G_OBJECT_CLASS (nm_connection_editor_parent_class)->dispose (object);
@@ -430,7 +436,7 @@ nm_connection_editor_new (NMConnection *connection,
 	                  G_CALLBACK (ok_button_actionable_cb), editor);
 	g_signal_connect (editor->ok_button, "authorized",
 	                  G_CALLBACK (ok_button_actionable_cb), editor);
-	hbox = glade_xml_get_widget (editor->xml, "action_area_hbox");
+	hbox = GTK_WIDGET (gtk_builder_get_object (editor->builder, "action_area_hbox"));
 	gtk_box_pack_end (GTK_BOX (hbox), editor->ok_button, TRUE, TRUE, 0);
 	gtk_widget_show_all (editor->ok_button);
 
@@ -477,8 +483,8 @@ populate_connection_ui (NMConnectionEditor *editor)
 	GtkWidget *name;
 	GtkWidget *autoconnect;
 
-	name = glade_xml_get_widget (editor->xml, "connection_name");
-	autoconnect = glade_xml_get_widget (editor->xml, "connection_autoconnect");
+	name = GTK_WIDGET (gtk_builder_get_object (editor->builder, "connection_name"));
+	autoconnect = GTK_WIDGET (gtk_builder_get_object (editor->builder, "connection_autoconnect"));
 
 	s_con = NM_SETTING_CONNECTION (nm_connection_get_setting (editor->connection, NM_TYPE_SETTING_CONNECTION));
 	if (s_con) {
@@ -539,7 +545,7 @@ page_initialized (CEPage *page, gpointer unused, GError *error, gpointer user_da
 {
 	NMConnectionEditor *editor = NM_CONNECTION_EDITOR (user_data);
 	GtkWidget *widget;
-	GtkWidget *notebook;
+	GtkNotebook *notebook;
 	GtkWidget *label;
 
 	if (error) {
@@ -549,10 +555,11 @@ page_initialized (CEPage *page, gpointer unused, GError *error, gpointer user_da
 	}
 
 	/* Add the page to the UI */
-	notebook = glade_xml_get_widget (editor->xml, "notebook");
+	notebook = GTK_NOTEBOOK (gtk_builder_get_object (editor->builder, "notebook"));
 	label = gtk_label_new (ce_page_get_title (page));
 	widget = ce_page_get_page (page);
-	gtk_notebook_append_page (GTK_NOTEBOOK (notebook), widget, label);
+	gtk_widget_unparent (widget);
+	gtk_notebook_append_page (notebook, widget, label);
 
 	/* Move the page from the initializing list to the main page list */
 	editor->initializing_pages = g_slist_remove (editor->initializing_pages, page);
diff --git a/src/connection-editor/nm-connection-editor.h b/src/connection-editor/nm-connection-editor.h
index 4fe21e6..0612af0 100644
--- a/src/connection-editor/nm-connection-editor.h
+++ b/src/connection-editor/nm-connection-editor.h
@@ -25,7 +25,6 @@
 #include "config.h"
 
 #include <glib-object.h>
-#include <glade/glade-xml.h>
 
 #include "nm-remote-settings-system.h"
 
@@ -53,7 +52,7 @@ typedef struct {
 
 	GSList *initializing_pages;
 	GSList *pages;
-	GladeXML *xml;
+	GtkBuilder *builder;
 	GtkWidget *window;
 	GtkWidget *ok_button;
 	GtkWidget *cancel_button;
diff --git a/src/connection-editor/nm-connection-editor.glade b/src/connection-editor/nm-connection-editor.ui
similarity index 80%
rename from src/connection-editor/nm-connection-editor.glade
rename to src/connection-editor/nm-connection-editor.ui
index da875e7..0f2d4cb 100644
--- a/src/connection-editor/nm-connection-editor.glade
+++ b/src/connection-editor/nm-connection-editor.ui
@@ -1,8 +1,8 @@
 <?xml version="1.0"?>
-<glade-interface>
-  <!-- interface-requires gtk+ 2.16 -->
-  <!-- interface-naming-policy toplevel-contextual -->
-  <widget class="GtkDialog" id="NMConnectionList">
+<interface>
+  <requires lib="gtk+" version="2.16"/>
+  <!-- interface-naming-policy project-wide -->
+  <object class="GtkDialog" id="NMConnectionList">
     <property name="border_width">5</property>
     <property name="title" translatable="yes">Network Connections</property>
     <property name="window_position">center</property>
@@ -12,55 +12,53 @@
     <property name="type_hint">dialog</property>
     <property name="has_separator">False</property>
     <child internal-child="vbox">
-      <widget class="GtkVBox" id="dialog-vbox2">
+      <object class="GtkVBox" id="dialog-vbox2">
         <property name="visible">True</property>
-        <property name="orientation">vertical</property>
         <property name="spacing">2</property>
         <child>
-          <widget class="GtkNotebook" id="list_notebook">
+          <object class="GtkNotebook" id="list_notebook">
             <property name="visible">True</property>
             <property name="can_focus">True</property>
             <property name="border_width">5</property>
             <child>
-              <widget class="GtkHBox" id="wired_child">
+              <object class="GtkHBox" id="wired_child">
                 <property name="visible">True</property>
                 <property name="border_width">6</property>
                 <property name="spacing">6</property>
                 <child>
-                  <widget class="GtkScrolledWindow" id="scolledwindow1">
+                  <object class="GtkScrolledWindow" id="scrolledwindow1">
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
                     <property name="hscrollbar_policy">automatic</property>
                     <property name="vscrollbar_policy">automatic</property>
                     <property name="shadow_type">in</property>
                     <child>
-                      <widget class="GtkTreeView" id="wired_list">
+                      <object class="GtkTreeView" id="wired_list">
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
                         <property name="headers_visible">False</property>
                         <property name="rules_hint">True</property>
-                      </widget>
+                      </object>
                     </child>
-                  </widget>
+                  </object>
                   <packing>
                     <property name="position">0</property>
                   </packing>
                 </child>
                 <child>
-                  <widget class="GtkVButtonBox" id="wired_button_box">
+                  <object class="GtkVButtonBox" id="wired_button_box">
                     <property name="visible">True</property>
-                    <property name="orientation">vertical</property>
                     <property name="spacing">6</property>
                     <property name="layout_style">start</property>
                     <child>
-                      <widget class="GtkButton" id="wired_add">
+                      <object class="GtkButton" id="wired_add">
                         <property name="label">gtk-add</property>
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
                         <property name="can_default">True</property>
                         <property name="receives_default">False</property>
                         <property name="use_stock">True</property>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="expand">False</property>
                         <property name="fill">False</property>
@@ -73,64 +71,62 @@
                     <child>
                       <placeholder/>
                     </child>
-                  </widget>
+                  </object>
                   <packing>
                     <property name="expand">False</property>
                     <property name="position">1</property>
                   </packing>
                 </child>
-              </widget>
+              </object>
             </child>
-            <child>
-              <widget class="GtkLabel" id="wired_label">
+            <child type="tab">
+              <object class="GtkLabel" id="wired_label">
                 <property name="visible">True</property>
                 <property name="label" translatable="yes">Wired</property>
-              </widget>
+              </object>
               <packing>
                 <property name="tab_fill">False</property>
-                <property name="type">tab</property>
               </packing>
             </child>
             <child>
-              <widget class="GtkHBox" id="wireless_child">
+              <object class="GtkHBox" id="wireless_child">
                 <property name="visible">True</property>
                 <property name="border_width">6</property>
                 <property name="spacing">6</property>
                 <child>
-                  <widget class="GtkScrolledWindow" id="scrolledwindow2">
+                  <object class="GtkScrolledWindow" id="scrolledwindow2">
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
                     <property name="hscrollbar_policy">automatic</property>
                     <property name="vscrollbar_policy">automatic</property>
                     <property name="shadow_type">in</property>
                     <child>
-                      <widget class="GtkTreeView" id="wireless_list">
+                      <object class="GtkTreeView" id="wireless_list">
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
                         <property name="headers_visible">False</property>
                         <property name="rules_hint">True</property>
-                      </widget>
+                      </object>
                     </child>
-                  </widget>
+                  </object>
                   <packing>
                     <property name="position">0</property>
                   </packing>
                 </child>
                 <child>
-                  <widget class="GtkVButtonBox" id="wireless_button_box">
+                  <object class="GtkVButtonBox" id="wireless_button_box">
                     <property name="visible">True</property>
-                    <property name="orientation">vertical</property>
                     <property name="spacing">6</property>
                     <property name="layout_style">start</property>
                     <child>
-                      <widget class="GtkButton" id="wireless_add">
+                      <object class="GtkButton" id="wireless_add">
                         <property name="label">gtk-add</property>
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
                         <property name="can_default">True</property>
                         <property name="receives_default">False</property>
                         <property name="use_stock">True</property>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="expand">False</property>
                         <property name="fill">False</property>
@@ -143,68 +139,66 @@
                     <child>
                       <placeholder/>
                     </child>
-                  </widget>
+                  </object>
                   <packing>
                     <property name="expand">False</property>
                     <property name="position">1</property>
                   </packing>
                 </child>
-              </widget>
+              </object>
               <packing>
                 <property name="position">1</property>
               </packing>
             </child>
-            <child>
-              <widget class="GtkLabel" id="wireless_label">
+            <child type="tab">
+              <object class="GtkLabel" id="wireless_label">
                 <property name="visible">True</property>
                 <property name="label" translatable="yes">Wireless</property>
-              </widget>
+              </object>
               <packing>
                 <property name="position">1</property>
                 <property name="tab_fill">False</property>
-                <property name="type">tab</property>
               </packing>
             </child>
             <child>
-              <widget class="GtkHBox" id="wwan_child">
+              <object class="GtkHBox" id="wwan_child">
                 <property name="visible">True</property>
                 <property name="border_width">6</property>
                 <property name="spacing">6</property>
                 <child>
-                  <widget class="GtkScrolledWindow" id="scrolledwindow3">
+                  <object class="GtkScrolledWindow" id="scrolledwindow3">
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
                     <property name="hscrollbar_policy">automatic</property>
                     <property name="vscrollbar_policy">automatic</property>
                     <property name="shadow_type">in</property>
                     <child>
-                      <widget class="GtkTreeView" id="wwan_list">
+                      <object class="GtkTreeView" id="wwan_list">
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
                         <property name="headers_visible">False</property>
                         <property name="rules_hint">True</property>
-                      </widget>
+                      </object>
                     </child>
-                  </widget>
+                  </object>
                   <packing>
                     <property name="position">0</property>
                   </packing>
                 </child>
                 <child>
-                  <widget class="GtkVButtonBox" id="wwan_button_box">
+                  <object class="GtkVButtonBox" id="wwan_button_box">
                     <property name="visible">True</property>
-                    <property name="orientation">vertical</property>
                     <property name="spacing">6</property>
                     <property name="layout_style">start</property>
                     <child>
-                      <widget class="GtkButton" id="wwan_add">
+                      <object class="GtkButton" id="wwan_add">
                         <property name="label">gtk-add</property>
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
                         <property name="can_default">True</property>
                         <property name="receives_default">False</property>
                         <property name="use_stock">True</property>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="expand">False</property>
                         <property name="fill">False</property>
@@ -217,73 +211,70 @@
                     <child>
                       <placeholder/>
                     </child>
-                  </widget>
+                  </object>
                   <packing>
                     <property name="expand">False</property>
                     <property name="position">1</property>
                   </packing>
                 </child>
-              </widget>
+              </object>
               <packing>
                 <property name="position">2</property>
               </packing>
             </child>
-            <child>
-              <widget class="GtkLabel" id="wwan_label">
+            <child type="tab">
+              <object class="GtkLabel" id="wwan_label">
                 <property name="visible">True</property>
                 <property name="label" translatable="yes">Mobile Broadband</property>
-              </widget>
+              </object>
               <packing>
                 <property name="position">2</property>
                 <property name="tab_fill">False</property>
-                <property name="type">tab</property>
               </packing>
             </child>
             <child>
-              <widget class="GtkHBox" id="vpn_child">
+              <object class="GtkHBox" id="vpn_child">
                 <property name="visible">True</property>
                 <property name="border_width">6</property>
                 <property name="spacing">6</property>
                 <child>
-                  <widget class="GtkScrolledWindow" id="scrolledwindow4">
+                  <object class="GtkScrolledWindow" id="scrolledwindow4">
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
                     <property name="hscrollbar_policy">automatic</property>
                     <property name="vscrollbar_policy">automatic</property>
                     <property name="shadow_type">in</property>
                     <child>
-                      <widget class="GtkTreeView" id="vpn_list">
+                      <object class="GtkTreeView" id="vpn_list">
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
                         <property name="headers_visible">False</property>
                         <property name="rules_hint">True</property>
-                      </widget>
+                      </object>
                     </child>
-                  </widget>
+                  </object>
                   <packing>
                     <property name="position">0</property>
                   </packing>
                 </child>
                 <child>
-                  <widget class="GtkVBox" id="vbox1">
+                  <object class="GtkVBox" id="vbox1">
                     <property name="visible">True</property>
-                    <property name="orientation">vertical</property>
                     <property name="spacing">6</property>
                     <child>
-                      <widget class="GtkVButtonBox" id="vpn_button_box">
+                      <object class="GtkVButtonBox" id="vpn_button_box">
                         <property name="visible">True</property>
-                        <property name="orientation">vertical</property>
                         <property name="spacing">6</property>
                         <property name="layout_style">start</property>
                         <child>
-                          <widget class="GtkButton" id="vpn_add">
+                          <object class="GtkButton" id="vpn_add">
                             <property name="label">gtk-add</property>
                             <property name="visible">True</property>
                             <property name="can_focus">True</property>
                             <property name="can_default">True</property>
                             <property name="receives_default">False</property>
                             <property name="use_stock">True</property>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="expand">False</property>
                             <property name="position">0</property>
@@ -295,121 +286,118 @@
                         <child>
                           <placeholder/>
                         </child>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="expand">False</property>
                         <property name="position">0</property>
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkHSeparator" id="hseparator1">
+                      <object class="GtkHSeparator" id="hseparator1">
                         <property name="visible">True</property>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="expand">False</property>
                         <property name="position">1</property>
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkVButtonBox" id="vpn_ix_button_box">
+                      <object class="GtkVButtonBox" id="vpn_ix_button_box">
                         <property name="visible">True</property>
-                        <property name="orientation">vertical</property>
                         <property name="spacing">6</property>
                         <property name="layout_style">end</property>
                         <child>
-                          <widget class="GtkButton" id="vpn_import">
+                          <object class="GtkButton" id="vpn_import">
                             <property name="label" translatable="yes">_Import</property>
                             <property name="visible">True</property>
                             <property name="can_focus">True</property>
                             <property name="receives_default">True</property>
                             <property name="use_underline">True</property>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="expand">False</property>
                             <property name="position">0</property>
                           </packing>
                         </child>
                         <child>
-                          <widget class="GtkButton" id="vpn_export">
+                          <object class="GtkButton" id="vpn_export">
                             <property name="label" translatable="yes">E_xport</property>
                             <property name="visible">True</property>
                             <property name="can_focus">True</property>
                             <property name="receives_default">True</property>
                             <property name="use_underline">True</property>
-                          </widget>
+                          </object>
                           <packing>
                             <property name="expand">False</property>
                             <property name="position">1</property>
                           </packing>
                         </child>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="expand">False</property>
                         <property name="position">2</property>
                       </packing>
                     </child>
-                  </widget>
+                  </object>
                   <packing>
                     <property name="expand">False</property>
                     <property name="position">1</property>
                   </packing>
                 </child>
-              </widget>
+              </object>
               <packing>
                 <property name="position">3</property>
               </packing>
             </child>
-            <child>
-              <widget class="GtkLabel" id="vpn_label">
+            <child type="tab">
+              <object class="GtkLabel" id="vpn_label">
                 <property name="visible">True</property>
                 <property name="label" translatable="yes">VPN</property>
-              </widget>
+              </object>
               <packing>
                 <property name="position">3</property>
                 <property name="tab_fill">False</property>
-                <property name="type">tab</property>
               </packing>
             </child>
             <child>
-              <widget class="GtkHBox" id="dsl_child">
+              <object class="GtkHBox" id="dsl_child">
                 <property name="visible">True</property>
                 <property name="border_width">6</property>
                 <property name="spacing">6</property>
                 <child>
-                  <widget class="GtkScrolledWindow" id="scrolledwindow5">
+                  <object class="GtkScrolledWindow" id="scrolledwindow5">
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
                     <property name="hscrollbar_policy">automatic</property>
                     <property name="vscrollbar_policy">automatic</property>
                     <property name="shadow_type">in</property>
                     <child>
-                      <widget class="GtkTreeView" id="dsl_list">
+                      <object class="GtkTreeView" id="dsl_list">
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
                         <property name="headers_visible">False</property>
                         <property name="rules_hint">True</property>
-                      </widget>
+                      </object>
                     </child>
-                  </widget>
+                  </object>
                   <packing>
                     <property name="position">0</property>
                   </packing>
                 </child>
                 <child>
-                  <widget class="GtkVButtonBox" id="dsl_button_box">
+                  <object class="GtkVButtonBox" id="dsl_button_box">
                     <property name="visible">True</property>
-                    <property name="orientation">vertical</property>
                     <property name="spacing">6</property>
                     <property name="layout_style">start</property>
                     <child>
-                      <widget class="GtkButton" id="dsl_add">
+                      <object class="GtkButton" id="dsl_add">
                         <property name="label">gtk-add</property>
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
                         <property name="can_default">True</property>
                         <property name="receives_default">False</property>
                         <property name="use_stock">True</property>
-                      </widget>
+                      </object>
                       <packing>
                         <property name="expand">False</property>
                         <property name="fill">False</property>
@@ -422,89 +410,88 @@
                     <child>
                       <placeholder/>
                     </child>
-                  </widget>
+                  </object>
                   <packing>
                     <property name="expand">False</property>
                     <property name="position">1</property>
                   </packing>
                 </child>
-              </widget>
+              </object>
               <packing>
                 <property name="position">4</property>
               </packing>
             </child>
-            <child>
-              <widget class="GtkLabel" id="dsl_label">
+            <child type="tab">
+              <object class="GtkLabel" id="dsl_label">
                 <property name="visible">True</property>
                 <property name="label" translatable="yes">DSL</property>
-              </widget>
+              </object>
               <packing>
                 <property name="position">4</property>
                 <property name="tab_fill">False</property>
-                <property name="type">tab</property>
               </packing>
             </child>
-          </widget>
+          </object>
           <packing>
             <property name="position">1</property>
           </packing>
         </child>
         <child internal-child="action_area">
-          <widget class="GtkHButtonBox" id="dialog-action_area2">
+          <object class="GtkHButtonBox" id="dialog-action_area2">
             <property name="visible">True</property>
             <property name="layout_style">end</property>
             <child>
-              <widget class="GtkButton" id="closebutton1">
+              <object class="GtkButton" id="closebutton1">
                 <property name="label">gtk-close</property>
-                <property name="response_id">-7</property>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="can_default">True</property>
                 <property name="receives_default">False</property>
                 <property name="use_stock">True</property>
-              </widget>
+              </object>
               <packing>
                 <property name="expand">False</property>
                 <property name="fill">False</property>
                 <property name="position">0</property>
               </packing>
             </child>
-          </widget>
+          </object>
           <packing>
             <property name="expand">False</property>
             <property name="pack_type">end</property>
             <property name="position">0</property>
           </packing>
         </child>
-      </widget>
+      </object>
     </child>
-  </widget>
-  <widget class="GtkWindow" id="nm-connection-editor">
+    <action-widgets>
+      <action-widget response="-7">closebutton1</action-widget>
+    </action-widgets>
+  </object>
+  <object class="GtkWindow" id="nm-connection-editor">
     <property name="window_position">center</property>
     <property name="destroy_with_parent">True</property>
     <property name="icon_name">preferences-system-network</property>
     <property name="type_hint">dialog</property>
     <child>
-      <widget class="GtkVBox" id="ce-vbox">
+      <object class="GtkVBox" id="ce-vbox">
         <property name="visible">True</property>
-        <property name="orientation">vertical</property>
         <property name="spacing">6</property>
         <child>
-          <widget class="GtkVBox" id="vbox3">
+          <object class="GtkVBox" id="vbox3">
             <property name="visible">True</property>
             <property name="border_width">5</property>
-            <property name="orientation">vertical</property>
             <property name="spacing">6</property>
             <child>
-              <widget class="GtkHBox" id="hbox3">
+              <object class="GtkHBox" id="hbox3">
                 <property name="visible">True</property>
                 <property name="spacing">12</property>
                 <child>
-                  <widget class="GtkLabel" id="connection_name_label">
+                  <object class="GtkLabel" id="connection_name_label">
                     <property name="visible">True</property>
                     <property name="label" translatable="yes">Connection _name:</property>
                     <property name="use_underline">True</property>
-                  </widget>
+                  </object>
                   <packing>
                     <property name="expand">False</property>
                     <property name="fill">False</property>
@@ -512,22 +499,22 @@
                   </packing>
                 </child>
                 <child>
-                  <widget class="GtkEntry" id="connection_name">
+                  <object class="GtkEntry" id="connection_name">
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
-                  </widget>
+                  </object>
                   <packing>
                     <property name="position">1</property>
                   </packing>
                 </child>
-              </widget>
+              </object>
               <packing>
                 <property name="expand">False</property>
                 <property name="position">0</property>
               </packing>
             </child>
             <child>
-              <widget class="GtkCheckButton" id="connection_autoconnect">
+              <object class="GtkCheckButton" id="connection_autoconnect">
                 <property name="label" translatable="yes">Connect _automatically</property>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
@@ -535,7 +522,7 @@
                 <property name="use_underline">True</property>
                 <property name="active">True</property>
                 <property name="draw_indicator">True</property>
-              </widget>
+              </object>
               <packing>
                 <property name="expand">False</property>
                 <property name="fill">False</property>
@@ -543,42 +530,42 @@
               </packing>
             </child>
             <child>
-              <widget class="GtkNotebook" id="notebook">
+              <object class="GtkNotebook" id="notebook">
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
-              </widget>
+              </object>
               <packing>
                 <property name="position">2</property>
               </packing>
             </child>
-          </widget>
+          </object>
           <packing>
             <property name="position">0</property>
           </packing>
         </child>
         <child>
-          <widget class="GtkHBox" id="hbox1">
+          <object class="GtkHBox" id="hbox1">
             <property name="visible">True</property>
             <property name="spacing">6</property>
             <child>
-              <widget class="GtkHButtonBox" id="system_hbox">
+              <object class="GtkHButtonBox" id="system_hbox">
                 <property name="visible">True</property>
                 <property name="spacing">6</property>
                 <child>
-                  <widget class="GtkCheckButton" id="system_checkbutton">
+                  <object class="GtkCheckButton" id="system_checkbutton">
                     <property name="label" translatable="yes">Available to all users</property>
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
                     <property name="receives_default">False</property>
                     <property name="draw_indicator">True</property>
-                  </widget>
+                  </object>
                   <packing>
                     <property name="expand">False</property>
                     <property name="fill">False</property>
                     <property name="position">0</property>
                   </packing>
                 </child>
-              </widget>
+              </object>
               <packing>
                 <property name="expand">False</property>
                 <property name="padding">6</property>
@@ -586,18 +573,18 @@
               </packing>
             </child>
             <child>
-              <widget class="GtkHButtonBox" id="action_area_hbox">
+              <object class="GtkHButtonBox" id="action_area_hbox">
                 <property name="visible">True</property>
                 <property name="spacing">6</property>
                 <property name="layout_style">end</property>
                 <child>
-                  <widget class="GtkButton" id="cancel_button">
+                  <object class="GtkButton" id="cancel_button">
                     <property name="label">gtk-cancel</property>
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
                     <property name="receives_default">False</property>
                     <property name="use_stock">True</property>
-                  </widget>
+                  </object>
                   <packing>
                     <property name="expand">False</property>
                     <property name="fill">False</property>
@@ -607,7 +594,7 @@
                 <child>
                   <placeholder/>
                 </child>
-              </widget>
+              </object>
               <packing>
                 <property name="expand">False</property>
                 <property name="fill">False</property>
@@ -616,14 +603,14 @@
                 <property name="position">1</property>
               </packing>
             </child>
-          </widget>
+          </object>
           <packing>
             <property name="expand">False</property>
             <property name="padding">6</property>
             <property name="position">1</property>
           </packing>
         </child>
-      </widget>
+      </object>
     </child>
-  </widget>
-</glade-interface>
+  </object>
+</interface>
diff --git a/src/connection-editor/nm-connection-list.c b/src/connection-editor/nm-connection-list.c
index 32fbc49..9554919 100644
--- a/src/connection-editor/nm-connection-list.c
+++ b/src/connection-editor/nm-connection-list.c
@@ -1157,7 +1157,7 @@ add_connection_treeview (NMConnectionList *self, const char *prefix)
 	GtkTreeView *treeview;
 
 	name = g_strdup_printf ("%s_list", prefix);
-	treeview = GTK_TREE_VIEW (glade_xml_get_widget (self->gui, name));
+	treeview = GTK_TREE_VIEW (GTK_WIDGET (gtk_builder_get_object (self->gui, name)));
 	g_free (name);
 	gtk_tree_view_set_headers_visible (treeview, TRUE);
 
@@ -1265,7 +1265,7 @@ add_connection_buttons (NMConnectionList *self,
 
 	/* Add */
 	name = g_strdup_printf ("%s_add", prefix);
-	button = glade_xml_get_widget (self->gui, name);
+	button = GTK_WIDGET (gtk_builder_get_object (self->gui, name));
 	g_free (name);
 	info = action_info_new (self, treeview, GTK_WINDOW (self->dialog), NULL);
 	g_signal_connect (button, "clicked", G_CALLBACK (add_clicked), info);
@@ -1280,7 +1280,7 @@ add_connection_buttons (NMConnectionList *self,
 		action_info_set_new_func (info, new_func);
 
 	name = g_strdup_printf ("%s_button_box", prefix);
-	hbox = glade_xml_get_widget (self->gui, name);
+	hbox = GTK_WIDGET (gtk_builder_get_object (self->gui, name));
 	g_free (name);
 
 	/* Edit */
@@ -1320,7 +1320,7 @@ add_connection_buttons (NMConnectionList *self,
 
 	/* Import */
 	name = g_strdup_printf ("%s_import", prefix);
-	button = glade_xml_get_widget (self->gui, name);
+	button = GTK_WIDGET (gtk_builder_get_object (self->gui, name));
 	g_free (name);
 	if (button) {
 		gboolean import_supported = FALSE;
@@ -1337,7 +1337,7 @@ add_connection_buttons (NMConnectionList *self,
 
 	/* Export */
 	name = g_strdup_printf ("%s_export", prefix);
-	button = glade_xml_get_widget (self->gui, name);
+	button = GTK_WIDGET (gtk_builder_get_object (self->gui, name));
 	g_free (name);
 	if (button) {
 		info = action_info_new (self, treeview, GTK_WINDOW (self->dialog), button);
@@ -1362,7 +1362,7 @@ add_connection_tab (NMConnectionList *self,
 	int pnum;
 
 	name = g_strdup_printf ("%s_child", prefix);
-	child = glade_xml_get_widget (self->gui, name);
+	child = GTK_WIDGET (gtk_builder_get_object (self->gui, name));
 	g_free (name);
 
 	/* Notebook tab */
@@ -1376,7 +1376,7 @@ add_connection_tab (NMConnectionList *self,
 	gtk_box_pack_start (GTK_BOX (hbox), gtk_label_new (label_text), FALSE, FALSE, 0);
 	gtk_widget_show_all (hbox);
 
-	notebook = glade_xml_get_widget (self->gui, "list_notebook");
+	notebook = GTK_WIDGET (gtk_builder_get_object (self->gui, "list_notebook"));
 	gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook), child, hbox);
 
 	treeview = add_connection_treeview (self, prefix);
@@ -1493,9 +1493,11 @@ nm_connection_list_new (GType def_type)
 		return NULL;
 
 	/* load GUI */
-	list->gui = glade_xml_new (GLADEDIR "/nm-connection-editor.glade", "NMConnectionList", NULL);
-	if (!list->gui) {
-		g_warning ("Could not load Glade file for connection list");
+	list->gui = gtk_builder_new();
+
+	if (!gtk_builder_add_from_file (list->gui, UIDIR "/nm-connection-editor.ui", &error)) {
+		g_warning ("Couldn't load builder file: %s", error->message);
+		g_error_free (error);
 		goto error;
 	}
 
@@ -1538,7 +1540,7 @@ nm_connection_list_new (GType def_type)
 
 	list->editors = g_hash_table_new_full (g_direct_hash, g_direct_equal, NULL, g_object_unref);
 
-	list->dialog = glade_xml_get_widget (list->gui, "NMConnectionList");
+	list->dialog = GTK_WIDGET (gtk_builder_get_object (list->gui, "NMConnectionList"));
 	if (!list->dialog)
 		goto error;
 	g_signal_connect (G_OBJECT (list->dialog), "response", G_CALLBACK (dialog_response_cb), list);
@@ -1574,7 +1576,7 @@ nm_connection_list_set_type (NMConnectionList *self, GType ctype)
 	/* If a notebook page is found that owns the requested type, set it
 	 * as the current page.
 	 */
-	notebook = GTK_NOTEBOOK (glade_xml_get_widget (self->gui, "list_notebook"));
+	notebook = GTK_NOTEBOOK (GTK_WIDGET (gtk_builder_get_object (self->gui, "list_notebook")));
 	for (i = 0; i < gtk_notebook_get_n_pages (notebook); i++) {
 		GtkWidget *child;
 		GType child_type;
diff --git a/src/connection-editor/nm-connection-list.h b/src/connection-editor/nm-connection-list.h
index c27317c..52954a2 100644
--- a/src/connection-editor/nm-connection-list.h
+++ b/src/connection-editor/nm-connection-list.h
@@ -24,7 +24,6 @@
 #define NM_CONNECTION_LIST_H
 
 #include <glib-object.h>
-#include <glade/glade-xml.h>
 #include <gconf/gconf-client.h>
 #include <gdk/gdk.h>
 #include <gtk/gtk.h>
@@ -46,7 +45,7 @@ typedef struct {
 	NMAGConfSettings *gconf_settings;
 	NMRemoteSettingsSystem *system_settings;
 
-	GladeXML *gui;
+	GtkBuilder *gui;
 	GtkWidget *dialog;
 
 	GdkPixbuf *wired_icon;
diff --git a/src/connection-editor/page-dsl.c b/src/connection-editor/page-dsl.c
index 63519dc..d21f1ad 100644
--- a/src/connection-editor/page-dsl.c
+++ b/src/connection-editor/page-dsl.c
@@ -52,13 +52,13 @@ static void
 dsl_private_init (CEPageDsl *self)
 {
 	CEPageDslPrivate *priv = CE_PAGE_DSL_GET_PRIVATE (self);
-	GladeXML *xml;
+	GtkBuilder *builder;
 
-	xml = CE_PAGE (self)->xml;
+	builder = CE_PAGE (self)->builder;
 
-	priv->username = GTK_ENTRY (glade_xml_get_widget (xml, "dsl_username"));
-	priv->password = GTK_ENTRY (glade_xml_get_widget (xml, "dsl_password"));
-	priv->service = GTK_ENTRY (glade_xml_get_widget (xml, "dsl_service"));
+	priv->username = GTK_ENTRY (GTK_WIDGET (gtk_builder_get_object (builder, "dsl_username")));
+	priv->password = GTK_ENTRY (GTK_WIDGET (gtk_builder_get_object (builder, "dsl_password")));
+	priv->service = GTK_ENTRY (GTK_WIDGET (gtk_builder_get_object (builder, "dsl_service")));
 }
 
 static void
@@ -115,7 +115,7 @@ finish_setup (CEPageDsl *self, gpointer unused, GError *error, gpointer user_dat
 	g_signal_connect (priv->password, "changed", G_CALLBACK (stuff_changed), self);
 	g_signal_connect (priv->service, "changed", G_CALLBACK (stuff_changed), self);
 
-	g_signal_connect (glade_xml_get_widget (parent->xml, "dsl_show_password"), "toggled",
+	g_signal_connect (GTK_WIDGET (gtk_builder_get_object (parent->builder, "dsl_show_password")), "toggled",
 					  G_CALLBACK (show_password), self);
 }
 
@@ -135,14 +135,16 @@ ce_page_dsl_new (NMConnection *connection,
 	                                  NULL));
 	parent = CE_PAGE (self);
 
-	parent->xml = glade_xml_new (GLADEDIR "/ce-page-dsl.glade", "DslPage", NULL);
-	if (!parent->xml) {
+	parent->builder = gtk_builder_new();
+
+	if (!gtk_builder_add_from_file (parent->builder, UIDIR "/ce-page-dsl.ui", error)) {
+		g_warning ("Couldn't load builder file: %s", (*error)->message);
 		g_set_error (error, 0, 0, "%s", _("Could not load DSL user interface."));
 		g_object_unref (self);
 		return NULL;
 	}
 
-	parent->page = glade_xml_get_widget (parent->xml, "DslPage");
+	parent->page = GTK_WIDGET (gtk_builder_get_object (parent->builder, "DslPage"));
 	if (!parent->page) {
 		g_set_error (error, 0, 0, "%s", _("Could not load DSL user interface."));
 		g_object_unref (self);
diff --git a/src/connection-editor/page-ip4.c b/src/connection-editor/page-ip4.c
index 9c0f7f8..c758459 100644
--- a/src/connection-editor/page-ip4.c
+++ b/src/connection-editor/page-ip4.c
@@ -107,13 +107,13 @@ static void
 ip4_private_init (CEPageIP4 *self, NMConnection *connection)
 {
 	CEPageIP4Private *priv = CE_PAGE_IP4_GET_PRIVATE (self);
-	GladeXML *xml;
+	GtkBuilder *builder;
 	GtkTreeIter iter;
 	NMSettingConnection *s_con;
 	const char *connection_type;
 	char *str_auto = NULL, *str_auto_only = NULL;
 
-	xml = CE_PAGE (self)->xml;
+	builder = CE_PAGE (self)->builder;
 
 	s_con = NM_SETTING_CONNECTION (nm_connection_get_setting (connection, NM_TYPE_SETTING_CONNECTION));
 	g_assert (s_con);
@@ -137,7 +137,7 @@ ip4_private_init (CEPageIP4 *self, NMConnection *connection)
 		str_auto_only = _("Automatic (DHCP) addresses only");
 	}
 
-	priv->method = GTK_COMBO_BOX (glade_xml_get_widget (xml, "ip4_method"));
+	priv->method = GTK_COMBO_BOX (GTK_WIDGET (gtk_builder_get_object (builder, "ip4_method")));
 
 	priv->method_store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_UINT);
 
@@ -193,19 +193,19 @@ ip4_private_init (CEPageIP4 *self, NMConnection *connection)
 	}
 	gtk_combo_box_set_model (priv->method, GTK_TREE_MODEL (priv->method_store));
 
-	priv->addr_label = glade_xml_get_widget (xml, "ip4_addr_label");
-	priv->addr_add = GTK_BUTTON (glade_xml_get_widget (xml, "ip4_addr_add_button"));
-	priv->addr_delete = GTK_BUTTON (glade_xml_get_widget (xml, "ip4_addr_delete_button"));
-	priv->addr_list = GTK_TREE_VIEW (glade_xml_get_widget (xml, "ip4_addresses"));
+	priv->addr_label = GTK_WIDGET (gtk_builder_get_object (builder, "ip4_addr_label"));
+	priv->addr_add = GTK_BUTTON (GTK_WIDGET (gtk_builder_get_object (builder, "ip4_addr_add_button")));
+	priv->addr_delete = GTK_BUTTON (GTK_WIDGET (gtk_builder_get_object (builder, "ip4_addr_delete_button")));
+	priv->addr_list = GTK_TREE_VIEW (GTK_WIDGET (gtk_builder_get_object (builder, "ip4_addresses")));
 
-	priv->dns_servers_label = glade_xml_get_widget (xml, "ip4_dns_servers_label");
-	priv->dns_servers = GTK_ENTRY (glade_xml_get_widget (xml, "ip4_dns_servers_entry"));
+	priv->dns_servers_label = GTK_WIDGET (gtk_builder_get_object (builder, "ip4_dns_servers_label"));
+	priv->dns_servers = GTK_ENTRY (GTK_WIDGET (gtk_builder_get_object (builder, "ip4_dns_servers_entry")));
 
-	priv->dns_searches_label = glade_xml_get_widget (xml, "ip4_dns_searches_label");
-	priv->dns_searches = GTK_ENTRY (glade_xml_get_widget (xml, "ip4_dns_searches_entry"));
+	priv->dns_searches_label = GTK_WIDGET (gtk_builder_get_object (builder, "ip4_dns_searches_label"));
+	priv->dns_searches = GTK_ENTRY (GTK_WIDGET (gtk_builder_get_object (builder, "ip4_dns_searches_entry")));
 
-	priv->dhcp_client_id_label = glade_xml_get_widget (xml, "ip4_dhcp_client_id_label");
-	priv->dhcp_client_id = GTK_ENTRY (glade_xml_get_widget (xml, "ip4_dhcp_client_id_entry"));
+	priv->dhcp_client_id_label = GTK_WIDGET (gtk_builder_get_object (builder, "ip4_dhcp_client_id_label"));
+	priv->dhcp_client_id = GTK_ENTRY (GTK_WIDGET (gtk_builder_get_object (builder, "ip4_dhcp_client_id_entry")));
 
 	/* Hide DHCP stuff if it'll never be used for a particular method */
 	if (   priv->connection_type == NM_TYPE_SETTING_VPN
@@ -216,7 +216,7 @@ ip4_private_init (CEPageIP4 *self, NMConnection *connection)
 		gtk_widget_hide (GTK_WIDGET (priv->dhcp_client_id));
 	}
 
-	priv->ip4_required = GTK_CHECK_BUTTON (glade_xml_get_widget (xml, "ip4_required_checkbutton"));
+	priv->ip4_required = GTK_CHECK_BUTTON (GTK_WIDGET (gtk_builder_get_object (builder, "ip4_required_checkbutton")));
 	/* Hide IP4-require button if it'll never be used for a particular method */
 	if (   priv->connection_type == NM_TYPE_SETTING_VPN
 	    || priv->connection_type == NM_TYPE_SETTING_GSM
@@ -224,7 +224,7 @@ ip4_private_init (CEPageIP4 *self, NMConnection *connection)
 	    || priv->connection_type == NM_TYPE_SETTING_PPPOE)
 		gtk_widget_hide (GTK_WIDGET (priv->ip4_required));
 
-	priv->routes_button = GTK_BUTTON (glade_xml_get_widget (xml, "ip4_routes_button"));
+	priv->routes_button = GTK_BUTTON (GTK_WIDGET (gtk_builder_get_object (builder, "ip4_routes_button")));
 }
 
 static void
@@ -814,14 +814,16 @@ ce_page_ip4_new (NMConnection *connection,
 	                                  NULL));
 	parent = CE_PAGE (self);
 
-	parent->xml = glade_xml_new (GLADEDIR "/ce-page-ip4.glade", "IP4Page", NULL);
-	if (!parent->xml) {
+	parent->builder = gtk_builder_new();
+
+	if (!gtk_builder_add_from_file (parent->builder, UIDIR "/ce-page-ip4.ui", error)) {
+		g_warning ("Couldn't load builder file: %s", (*error)->message);
 		g_set_error (error, 0, 0, "%s", _("Could not load IPv4 user interface."));
 		g_object_unref (self);
 		return NULL;
 	}
 
-	parent->page = glade_xml_get_widget (parent->xml, "IP4Page");
+	parent->page = GTK_WIDGET (gtk_builder_get_object (parent->builder, "IP4Page"));
 	if (!parent->page) {
 		g_set_error (error, 0, 0, "%s", _("Could not load IPv4 user interface."));
 		g_object_unref (self);
diff --git a/src/connection-editor/page-ip6.c b/src/connection-editor/page-ip6.c
index cc9d95a..a2f769b 100644
--- a/src/connection-editor/page-ip6.c
+++ b/src/connection-editor/page-ip6.c
@@ -105,14 +105,14 @@ static void
 ip6_private_init (CEPageIP6 *self, NMConnection *connection)
 {
 	CEPageIP6Private *priv = CE_PAGE_IP6_GET_PRIVATE (self);
-	GladeXML *xml;
+	GtkBuilder *builder;
 	GtkTreeIter iter;
 	NMSettingConnection *s_con;
 	const char *connection_type;
 	char *str_auto = NULL, *str_auto_only = NULL;
 	GList *cells;
 
-	xml = CE_PAGE (self)->xml;
+	builder = CE_PAGE (self)->builder;
 
 	s_con = NM_SETTING_CONNECTION (nm_connection_get_setting (connection, NM_TYPE_SETTING_CONNECTION));
 	g_assert (s_con);
@@ -136,7 +136,7 @@ ip6_private_init (CEPageIP6 *self, NMConnection *connection)
 		str_auto_only = _("Automatic, addresses only");
 	}
 
-	priv->method = GTK_COMBO_BOX (glade_xml_get_widget (xml, "ip6_method"));
+	priv->method = GTK_COMBO_BOX (GTK_WIDGET (gtk_builder_get_object (builder, "ip6_method")));
 	cells = gtk_cell_layout_get_cells (GTK_CELL_LAYOUT (priv->method));
 	gtk_cell_layout_add_attribute (GTK_CELL_LAYOUT (priv->method), cells->data,
 								   "sensitive", METHOD_COL_ENABLED);
@@ -209,18 +209,18 @@ ip6_private_init (CEPageIP6 *self, NMConnection *connection)
 
 	gtk_combo_box_set_model (priv->method, GTK_TREE_MODEL (priv->method_store));
 
-	priv->addr_label = glade_xml_get_widget (xml, "ip6_addr_label");
-	priv->addr_add = GTK_BUTTON (glade_xml_get_widget (xml, "ip6_addr_add_button"));
-	priv->addr_delete = GTK_BUTTON (glade_xml_get_widget (xml, "ip6_addr_delete_button"));
-	priv->addr_list = GTK_TREE_VIEW (glade_xml_get_widget (xml, "ip6_addresses"));
+	priv->addr_label = GTK_WIDGET (gtk_builder_get_object (builder, "ip6_addr_label"));
+	priv->addr_add = GTK_BUTTON (GTK_WIDGET (gtk_builder_get_object (builder, "ip6_addr_add_button")));
+	priv->addr_delete = GTK_BUTTON (GTK_WIDGET (gtk_builder_get_object (builder, "ip6_addr_delete_button")));
+	priv->addr_list = GTK_TREE_VIEW (GTK_WIDGET (gtk_builder_get_object (builder, "ip6_addresses")));
 
-	priv->dns_servers_label = glade_xml_get_widget (xml, "ip6_dns_servers_label");
-	priv->dns_servers = GTK_ENTRY (glade_xml_get_widget (xml, "ip6_dns_servers_entry"));
+	priv->dns_servers_label = GTK_WIDGET (gtk_builder_get_object (builder, "ip6_dns_servers_label"));
+	priv->dns_servers = GTK_ENTRY (GTK_WIDGET (gtk_builder_get_object (builder, "ip6_dns_servers_entry")));
 
-	priv->dns_searches_label = glade_xml_get_widget (xml, "ip6_dns_searches_label");
-	priv->dns_searches = GTK_ENTRY (glade_xml_get_widget (xml, "ip6_dns_searches_entry"));
+	priv->dns_searches_label = GTK_WIDGET (gtk_builder_get_object (builder, "ip6_dns_searches_label"));
+	priv->dns_searches = GTK_ENTRY (GTK_WIDGET (gtk_builder_get_object (builder, "ip6_dns_searches_entry")));
 
-	priv->ip6_required = GTK_CHECK_BUTTON (glade_xml_get_widget (xml, "ip6_required_checkbutton"));
+	priv->ip6_required = GTK_CHECK_BUTTON (GTK_WIDGET (gtk_builder_get_object (builder, "ip6_required_checkbutton")));
 	/* Hide IP6-require button if it'll never be used for a particular method */
 	if (   priv->connection_type == NM_TYPE_SETTING_VPN
 	    || priv->connection_type == NM_TYPE_SETTING_GSM
@@ -228,7 +228,7 @@ ip6_private_init (CEPageIP6 *self, NMConnection *connection)
 	    || priv->connection_type == NM_TYPE_SETTING_PPPOE)
 		gtk_widget_hide (GTK_WIDGET (priv->ip6_required));
 
-	priv->routes_button = GTK_BUTTON (glade_xml_get_widget (xml, "ip6_routes_button"));
+	priv->routes_button = GTK_BUTTON (GTK_WIDGET (gtk_builder_get_object (builder, "ip6_routes_button")));
 }
 
 static void
@@ -797,14 +797,16 @@ ce_page_ip6_new (NMConnection *connection,
 	                                  NULL));
 	parent = CE_PAGE (self);
 
-	parent->xml = glade_xml_new (GLADEDIR "/ce-page-ip6.glade", "IP6Page", NULL);
-	if (!parent->xml) {
+	parent->builder = gtk_builder_new();
+
+	if (!gtk_builder_add_from_file (parent->builder, UIDIR "/ce-page-ip6.ui", error)) {
+		g_warning ("Couldn't load builder file: %s", (*error)->message);
 		g_set_error (error, 0, 0, "%s", _("Could not load IPv6 user interface."));
 		g_object_unref (self);
 		return NULL;
 	}
 
-	parent->page = glade_xml_get_widget (parent->xml, "IP6Page");
+	parent->page = GTK_WIDGET (gtk_builder_get_object (parent->builder, "IP6Page"));
 	if (!parent->page) {
 		g_set_error (error, 0, 0, "%s", _("Could not load IPv6 user interface."));
 		g_object_unref (self);
diff --git a/src/connection-editor/page-mobile.c b/src/connection-editor/page-mobile.c
index 8fcbf17..27a9096 100644
--- a/src/connection-editor/page-mobile.c
+++ b/src/connection-editor/page-mobile.c
@@ -73,21 +73,21 @@ static void
 mobile_private_init (CEPageMobile *self)
 {
 	CEPageMobilePrivate *priv = CE_PAGE_MOBILE_GET_PRIVATE (self);
-	GladeXML *xml;
+	GtkBuilder *builder;
 
-	xml = CE_PAGE (self)->xml;
+	builder = CE_PAGE (self)->builder;
 
-	priv->number = GTK_ENTRY (glade_xml_get_widget (xml, "mobile_number"));
-	priv->username = GTK_ENTRY (glade_xml_get_widget (xml, "mobile_username"));
-	priv->password = GTK_ENTRY (glade_xml_get_widget (xml, "mobile_password"));
+	priv->number = GTK_ENTRY (GTK_WIDGET (gtk_builder_get_object (builder, "mobile_number")));
+	priv->username = GTK_ENTRY (GTK_WIDGET (gtk_builder_get_object (builder, "mobile_username")));
+	priv->password = GTK_ENTRY (GTK_WIDGET (gtk_builder_get_object (builder, "mobile_password")));
 
-	priv->apn = GTK_ENTRY (glade_xml_get_widget (xml, "mobile_apn"));
-	priv->apn_button = GTK_BUTTON (glade_xml_get_widget (xml, "mobile_apn_button"));
-	priv->network_id = GTK_ENTRY (glade_xml_get_widget (xml, "mobile_network_id"));
-	priv->network_type = GTK_COMBO_BOX (glade_xml_get_widget (xml, "mobile_network_type"));
-	priv->roaming_allowed = GTK_TOGGLE_BUTTON (glade_xml_get_widget (xml, "mobile_roaming_allowed"));
+	priv->apn = GTK_ENTRY (GTK_WIDGET (gtk_builder_get_object (builder, "mobile_apn")));
+	priv->apn_button = GTK_BUTTON (GTK_WIDGET (gtk_builder_get_object (builder, "mobile_apn_button")));
+	priv->network_id = GTK_ENTRY (GTK_WIDGET (gtk_builder_get_object (builder, "mobile_network_id")));
+	priv->network_type = GTK_COMBO_BOX (GTK_WIDGET (gtk_builder_get_object (builder, "mobile_network_type")));
+	priv->roaming_allowed = GTK_TOGGLE_BUTTON (GTK_WIDGET (gtk_builder_get_object (builder, "mobile_roaming_allowed")));
 
-	priv->pin = GTK_ENTRY (glade_xml_get_widget (xml, "mobile_pin"));
+	priv->pin = GTK_ENTRY (GTK_WIDGET (gtk_builder_get_object (builder, "mobile_pin")));
 
 	priv->window_group = gtk_window_group_new ();
 }
@@ -168,8 +168,8 @@ populate_cdma_ui (CEPageMobile *self, NMConnection *connection)
 		gtk_entry_set_text (priv->password, s);
 
 	/* Hide GSM specific widgets */
-	gtk_widget_hide (glade_xml_get_widget (CE_PAGE (self)->xml, "mobile_basic_label"));
-	gtk_widget_hide (glade_xml_get_widget (CE_PAGE (self)->xml, "mobile_advanced_vbox"));
+	gtk_widget_hide (GTK_WIDGET (gtk_builder_get_object (CE_PAGE (self)->builder, "mobile_basic_label")));
+	gtk_widget_hide (GTK_WIDGET (gtk_builder_get_object (CE_PAGE (self)->builder, "mobile_advanced_vbox")));
 }
 
 static void
@@ -342,7 +342,7 @@ finish_setup (CEPageMobile *self, gpointer unused, GError *error, gpointer user_
 	g_signal_connect (priv->pin, "changed", G_CALLBACK (stuff_changed), self);
 	g_signal_connect (priv->roaming_allowed, "toggled", G_CALLBACK (stuff_changed), self);
 
-	g_signal_connect (glade_xml_get_widget (parent->xml, "mobile_show_passwords"),
+	g_signal_connect (GTK_WIDGET (gtk_builder_get_object (parent->builder, "mobile_show_passwords")),
 	                  "toggled",
 	                  G_CALLBACK (show_passwords),
 	                  self);
@@ -364,14 +364,16 @@ ce_page_mobile_new (NMConnection *connection,
 	                                     NULL));
 	parent = CE_PAGE (self);
 
-	parent->xml = glade_xml_new (GLADEDIR "/ce-page-mobile.glade", "MobilePage", NULL);
-	if (!parent->xml) {
+	parent->builder = gtk_builder_new();
+
+	if (!gtk_builder_add_from_file (parent->builder, UIDIR "/ce-page-mobile.ui", error)) {
+		g_warning ("Couldn't load builder file: %s", (*error)->message);
 		g_set_error (error, 0, 0, "%s", _("Could not load mobile broadband user interface."));
 		g_object_unref (self);
 		return NULL;
 	}
 
-	parent->page = glade_xml_get_widget (parent->xml, "MobilePage");
+	parent->page = GTK_WIDGET (gtk_builder_get_object (parent->builder, "MobilePage"));
 	if (!parent->page) {
 		g_set_error (error, 0, 0, "%s", _("Could not load mobile broadband user interface."));
 		g_object_unref (self);
diff --git a/src/connection-editor/page-ppp.c b/src/connection-editor/page-ppp.c
index 0678c7d..91f3523 100644
--- a/src/connection-editor/page-ppp.c
+++ b/src/connection-editor/page-ppp.c
@@ -78,20 +78,20 @@ static void
 ppp_private_init (CEPagePpp *self)
 {
 	CEPagePppPrivate *priv = CE_PAGE_PPP_GET_PRIVATE (self);
-	GladeXML *xml;
+	GtkBuilder *builder;
 
-	xml = CE_PAGE (self)->xml;
+	builder = CE_PAGE (self)->builder;
 
-	priv->auth_methods_label = GTK_LABEL (glade_xml_get_widget (xml, "auth_methods_label"));
-	priv->auth_methods_button = GTK_BUTTON (glade_xml_get_widget (xml, "auth_methods_button"));
+	priv->auth_methods_label = GTK_LABEL (GTK_WIDGET (gtk_builder_get_object (builder, "auth_methods_label")));
+	priv->auth_methods_button = GTK_BUTTON (GTK_WIDGET (gtk_builder_get_object (builder, "auth_methods_button")));
 
-	priv->use_mppe = GTK_TOGGLE_BUTTON (glade_xml_get_widget (xml, "ppp_use_mppe"));
-	priv->mppe_require_128 = GTK_TOGGLE_BUTTON (glade_xml_get_widget (xml, "ppp_require_mppe_128"));
-	priv->use_mppe_stateful = GTK_TOGGLE_BUTTON (glade_xml_get_widget (xml, "ppp_use_stateful_mppe"));
-	priv->allow_bsdcomp = GTK_TOGGLE_BUTTON (glade_xml_get_widget (xml, "ppp_allow_bsdcomp"));
-	priv->allow_deflate = GTK_TOGGLE_BUTTON (glade_xml_get_widget (xml, "ppp_allow_deflate"));
-	priv->use_vj_comp = GTK_TOGGLE_BUTTON (glade_xml_get_widget (xml, "ppp_usevj"));
-	priv->send_ppp_echo = GTK_TOGGLE_BUTTON (glade_xml_get_widget (xml, "ppp_send_echo_packets"));
+	priv->use_mppe = GTK_TOGGLE_BUTTON (GTK_WIDGET (gtk_builder_get_object (builder, "ppp_use_mppe")));
+	priv->mppe_require_128 = GTK_TOGGLE_BUTTON (GTK_WIDGET (gtk_builder_get_object (builder, "ppp_require_mppe_128")));
+	priv->use_mppe_stateful = GTK_TOGGLE_BUTTON (GTK_WIDGET (gtk_builder_get_object (builder, "ppp_use_stateful_mppe")));
+	priv->allow_bsdcomp = GTK_TOGGLE_BUTTON (GTK_WIDGET (gtk_builder_get_object (builder, "ppp_allow_bsdcomp")));
+	priv->allow_deflate = GTK_TOGGLE_BUTTON (GTK_WIDGET (gtk_builder_get_object (builder, "ppp_allow_deflate")));
+	priv->use_vj_comp = GTK_TOGGLE_BUTTON (GTK_WIDGET (gtk_builder_get_object (builder, "ppp_usevj")));
+	priv->send_ppp_echo = GTK_TOGGLE_BUTTON (GTK_WIDGET (gtk_builder_get_object (builder, "ppp_send_echo_packets")));
 }
 
 static void
@@ -278,14 +278,16 @@ ce_page_ppp_new (NMConnection *connection,
 	                                  NULL));
 	parent = CE_PAGE (self);
 
-	parent->xml = glade_xml_new (GLADEDIR "/ce-page-ppp.glade", "PppPage", NULL);
-	if (!parent->xml) {
+	parent->builder = gtk_builder_new();
+
+	if (!gtk_builder_add_from_file (parent->builder, UIDIR "/ce-page-ppp.ui", error)) {
+		g_warning ("Couldn't load builder file: %s", (*error)->message);
 		g_set_error (error, 0, 0, "%s", _("Could not load PPP user interface."));
 		g_object_unref (self);
 		return NULL;
 	}
 
-	parent->page = glade_xml_get_widget (parent->xml, "PppPage");
+	parent->page = GTK_WIDGET (gtk_builder_get_object (parent->builder, "PppPage"));
 	if (!parent->page) {
 		g_set_error (error, 0, 0, "%s", _("Could not load PPP user interface."));
 		g_object_unref (self);
diff --git a/src/connection-editor/page-wired-security.c b/src/connection-editor/page-wired-security.c
index 7a3c303..cf6fb19 100644
--- a/src/connection-editor/page-wired-security.c
+++ b/src/connection-editor/page-wired-security.c
@@ -72,12 +72,12 @@ finish_setup (CEPageWiredSecurity *self, gpointer unused, GError *error, gpointe
 {
 	CEPage *parent = CE_PAGE (self);
 	CEPageWiredSecurityPrivate *priv = CE_PAGE_WIRED_SECURITY_GET_PRIVATE (self);
-	const char *glade_file = GLADEDIR "/applet.glade";
+	const char *ui_file = UIDIR "/applet.ui";
 
 	if (error)
 		return;
 
-	priv->security = (WirelessSecurity *) ws_wpa_eap_new (glade_file, parent->connection, TRUE);
+	priv->security = (WirelessSecurity *) ws_wpa_eap_new (ui_file, parent->connection, TRUE);
 	if (!priv->security) {
 		g_warning ("Could not load wired 802.1x user interface.");
 		return;
@@ -85,6 +85,7 @@ finish_setup (CEPageWiredSecurity *self, gpointer unused, GError *error, gpointe
 
 	wireless_security_set_changed_notify (priv->security, stuff_changed, self);
 	priv->security_widget = wireless_security_get_widget (priv->security);
+	gtk_widget_unparent (priv->security_widget);
 
 	gtk_toggle_button_set_active (priv->enabled, priv->initial_have_8021x);
 	g_signal_connect (priv->enabled, "toggled", G_CALLBACK (enable_toggled), self);
diff --git a/src/connection-editor/page-wired.c b/src/connection-editor/page-wired.c
index 91f38a3..31d83fd 100644
--- a/src/connection-editor/page-wired.c
+++ b/src/connection-editor/page-wired.c
@@ -65,17 +65,17 @@ static void
 wired_private_init (CEPageWired *self)
 {
 	CEPageWiredPrivate *priv = CE_PAGE_WIRED_GET_PRIVATE (self);
-	GladeXML *xml;
+	GtkBuilder *builder;
 
-	xml = CE_PAGE (self)->xml;
+	builder = CE_PAGE (self)->builder;
 
-	priv->device_mac = GTK_ENTRY (glade_xml_get_widget (xml, "wired_device_mac"));
-	priv->cloned_mac = GTK_ENTRY (glade_xml_get_widget (xml, "wired_cloned_mac"));
-	priv->port = GTK_COMBO_BOX (glade_xml_get_widget (xml, "wired_port"));
-	priv->speed = GTK_COMBO_BOX (glade_xml_get_widget (xml, "wired_speed"));
-	priv->duplex = GTK_TOGGLE_BUTTON (glade_xml_get_widget (xml, "wired_duplex"));
-	priv->autonegotiate = GTK_TOGGLE_BUTTON (glade_xml_get_widget (xml, "wired_autonegotiate"));
-	priv->mtu = GTK_SPIN_BUTTON (glade_xml_get_widget (xml, "wired_mtu"));
+	priv->device_mac = GTK_ENTRY (GTK_WIDGET (gtk_builder_get_object (builder, "wired_device_mac")));
+	priv->cloned_mac = GTK_ENTRY (GTK_WIDGET (gtk_builder_get_object (builder, "wired_cloned_mac")));
+	priv->port = GTK_COMBO_BOX (GTK_WIDGET (gtk_builder_get_object (builder, "wired_port")));
+	priv->speed = GTK_COMBO_BOX (GTK_WIDGET (gtk_builder_get_object (builder, "wired_speed")));
+	priv->duplex = GTK_TOGGLE_BUTTON (GTK_WIDGET (gtk_builder_get_object (builder, "wired_duplex")));
+	priv->autonegotiate = GTK_TOGGLE_BUTTON (GTK_WIDGET (gtk_builder_get_object (builder, "wired_autonegotiate")));
+	priv->mtu = GTK_SPIN_BUTTON (GTK_WIDGET (gtk_builder_get_object (builder, "wired_mtu")));
 }
 
 static void
@@ -176,19 +176,19 @@ finish_setup (CEPageWired *self, gpointer unused, GError *error, gpointer user_d
 	g_signal_connect (priv->mtu, "value-changed", G_CALLBACK (stuff_changed), self);
 
 	/* Hide widgets we don't yet support */
-	widget = glade_xml_get_widget (parent->xml, "wired_port_label");
+	widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "wired_port_label"));
 	gtk_widget_hide (widget);
-	widget = glade_xml_get_widget (parent->xml, "wired_port");
+	widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "wired_port"));
 	gtk_widget_hide (widget);
 
-	widget = glade_xml_get_widget (parent->xml, "wired_speed_label");
+	widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "wired_speed_label"));
 	gtk_widget_hide (widget);
-	widget = glade_xml_get_widget (parent->xml, "wired_speed");
+	widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "wired_speed"));
 	gtk_widget_hide (widget);
 
-	widget = glade_xml_get_widget (parent->xml, "wired_duplex");
+	widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "wired_duplex"));
 	gtk_widget_hide (widget);
-	widget = glade_xml_get_widget (parent->xml, "wired_autonegotiate");
+	widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "wired_autonegotiate"));
 	gtk_widget_hide (widget);
 }
 
@@ -208,14 +208,16 @@ ce_page_wired_new (NMConnection *connection,
 	                                    NULL));
 	parent = CE_PAGE (self);
 
-	parent->xml = glade_xml_new (GLADEDIR "/ce-page-wired.glade", "WiredPage", NULL);
-	if (!parent->xml) {
+	parent->builder = gtk_builder_new ();
+
+	if (!gtk_builder_add_from_file (parent->builder, UIDIR "/ce-page-wired.ui", error)) {
+		g_warning ("Couldn't load builder file: %s", (*error)->message);
 		g_set_error (error, 0, 0, "%s", _("Could not load wired user interface."));
 		g_object_unref (self);
 		return NULL;
 	}
 
-	parent->page = glade_xml_get_widget (parent->xml, "WiredPage");
+	parent->page = GTK_WIDGET (gtk_builder_get_object (parent->builder, "WiredPage"));
 	if (!parent->page) {
 		g_set_error (error, 0, 0, "%s", _("Could not load wired user interface."));
 		g_object_unref (self);
diff --git a/src/connection-editor/page-wireless-security.c b/src/connection-editor/page-wireless-security.c
index a484031..1726e73 100644
--- a/src/connection-editor/page-wireless-security.c
+++ b/src/connection-editor/page-wireless-security.c
@@ -141,7 +141,7 @@ wireless_security_combo_changed (GtkComboBox *combo,
 	GList *elt, *children;
 	WirelessSecurity *sec;
 
-	vbox = glade_xml_get_widget (CE_PAGE (self)->xml, "wireless_security_vbox");
+	vbox = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (self)->builder, "wireless_security_vbox"));
 	g_assert (vbox);
 
 	wsec_size_group_clear (self->group);
@@ -158,8 +158,9 @@ wireless_security_combo_changed (GtkComboBox *combo,
 
 		sec_widget = wireless_security_get_widget (sec);
 		g_assert (sec_widget);
+		gtk_widget_unparent (sec_widget);
 
-		widget = glade_xml_get_widget (CE_PAGE (self)->xml, "wireless_security_combo_label");
+		widget = GTK_WIDGET (gtk_builder_get_object (CE_PAGE (self)->builder, "wireless_security_combo_label"));
 		gtk_size_group_add_widget (self->group, widget);
 		wireless_security_add_to_size_group (sec, self->group);
 
@@ -199,7 +200,7 @@ finish_setup (CEPageWirelessSecurity *self, gpointer unused, GError *error, gpoi
 	NMUtilsSecurityType default_type = NMU_SEC_NONE;
 	int active = -1;
 	int item = 0;
-	const char *glade_file = GLADEDIR "/applet.glade";
+	const char *ui_file = UIDIR "/applet.ui";
 	GtkComboBox *combo;
 
 	if (error)
@@ -208,7 +209,7 @@ finish_setup (CEPageWirelessSecurity *self, gpointer unused, GError *error, gpoi
 	s_wireless = NM_SETTING_WIRELESS (nm_connection_get_setting (connection, NM_TYPE_SETTING_WIRELESS));
 	g_assert (s_wireless);
 
-	combo = GTK_COMBO_BOX (glade_xml_get_widget (parent->xml, "wireless_security_combo"));
+	combo = GTK_COMBO_BOX (GTK_WIDGET (gtk_builder_get_object (parent->builder, "wireless_security_combo")));
 
 	dev_caps =   NM_WIFI_DEVICE_CAP_CIPHER_WEP40
 	           | NM_WIFI_DEVICE_CAP_CIPHER_WEP104
@@ -256,7 +257,7 @@ finish_setup (CEPageWirelessSecurity *self, gpointer unused, GError *error, gpoi
 				wep_type = NM_WEP_KEY_TYPE_KEY;
 		}
 
-		ws_wep = ws_wep_key_new (glade_file, connection, NM_WEP_KEY_TYPE_KEY, FALSE, FALSE);
+		ws_wep = ws_wep_key_new (ui_file, connection, NM_WEP_KEY_TYPE_KEY, FALSE, FALSE);
 		if (ws_wep) {
 			add_security_item (self, WIRELESS_SECURITY (ws_wep), sec_model,
 			                   &iter, _("WEP 40/128-bit Key (Hex or ASCII)"));
@@ -265,7 +266,7 @@ finish_setup (CEPageWirelessSecurity *self, gpointer unused, GError *error, gpoi
 			item++;
 		}
 
-		ws_wep = ws_wep_key_new (glade_file, connection, NM_WEP_KEY_TYPE_PASSPHRASE, FALSE, FALSE);
+		ws_wep = ws_wep_key_new (ui_file, connection, NM_WEP_KEY_TYPE_PASSPHRASE, FALSE, FALSE);
 		if (ws_wep) {
 			add_security_item (self, WIRELESS_SECURITY (ws_wep), sec_model,
 			                   &iter, _("WEP 128-bit Passphrase"));
@@ -278,7 +279,7 @@ finish_setup (CEPageWirelessSecurity *self, gpointer unused, GError *error, gpoi
 	if (nm_utils_security_valid (NMU_SEC_LEAP, dev_caps, FALSE, is_adhoc, 0, 0, 0)) {
 		WirelessSecurityLEAP *ws_leap;
 
-		ws_leap = ws_leap_new (glade_file, connection);
+		ws_leap = ws_leap_new (ui_file, connection);
 		if (ws_leap) {
 			add_security_item (self, WIRELESS_SECURITY (ws_leap), sec_model,
 			                   &iter, _("LEAP"));
@@ -291,7 +292,7 @@ finish_setup (CEPageWirelessSecurity *self, gpointer unused, GError *error, gpoi
 	if (nm_utils_security_valid (NMU_SEC_DYNAMIC_WEP, dev_caps, FALSE, is_adhoc, 0, 0, 0)) {
 		WirelessSecurityDynamicWEP *ws_dynamic_wep;
 
-		ws_dynamic_wep = ws_dynamic_wep_new (glade_file, connection, TRUE);
+		ws_dynamic_wep = ws_dynamic_wep_new (ui_file, connection, TRUE);
 		if (ws_dynamic_wep) {
 			add_security_item (self, WIRELESS_SECURITY (ws_dynamic_wep), sec_model,
 			                   &iter, _("Dynamic WEP (802.1x)"));
@@ -305,7 +306,7 @@ finish_setup (CEPageWirelessSecurity *self, gpointer unused, GError *error, gpoi
 	    || nm_utils_security_valid (NMU_SEC_WPA2_PSK, dev_caps, FALSE, is_adhoc, 0, 0, 0)) {
 		WirelessSecurityWPAPSK *ws_wpa_psk;
 
-		ws_wpa_psk = ws_wpa_psk_new (glade_file, connection);
+		ws_wpa_psk = ws_wpa_psk_new (ui_file, connection);
 		if (ws_wpa_psk) {
 			add_security_item (self, WIRELESS_SECURITY (ws_wpa_psk), sec_model,
 			                   &iter, _("WPA & WPA2 Personal"));
@@ -319,7 +320,7 @@ finish_setup (CEPageWirelessSecurity *self, gpointer unused, GError *error, gpoi
 	    || nm_utils_security_valid (NMU_SEC_WPA2_ENTERPRISE, dev_caps, FALSE, is_adhoc, 0, 0, 0)) {
 		WirelessSecurityWPAEAP *ws_wpa_eap;
 
-		ws_wpa_eap = ws_wpa_eap_new (glade_file, connection, TRUE);
+		ws_wpa_eap = ws_wpa_eap_new (ui_file, connection, TRUE);
 		if (ws_wpa_eap) {
 			add_security_item (self, WIRELESS_SECURITY (ws_wpa_eap), sec_model,
 			                   &iter, _("WPA & WPA2 Enterprise"));
@@ -367,14 +368,16 @@ ce_page_wireless_security_new (NMConnection *connection,
 		return NULL;
 	}
 
-	parent->xml = glade_xml_new (GLADEDIR "/ce-page-wireless-security.glade", "WirelessSecurityPage", NULL);
-	if (!parent->xml) {
+	parent->builder = gtk_builder_new();
+
+	if (!gtk_builder_add_from_file (parent->builder, UIDIR "/ce-page-wireless-security.ui", error)) {
+		g_warning ("Couldn't load builder file: %s", (*error)->message);
 		g_set_error (error, 0, 0, "%s", _("Could not load WiFi security user interface."));
 		g_object_unref (self);
 		return NULL;
 	}
 
-	parent->page = glade_xml_get_widget (parent->xml, "WirelessSecurityPage");
+	parent->page = GTK_WIDGET (gtk_builder_get_object (parent->builder, "WirelessSecurityPage"));
 	if (!parent->page) {
 		g_set_error (error, 0, 0, "%s", _("Could not load WiFi security user interface."));
 		g_object_unref (self);
diff --git a/src/connection-editor/page-wireless.c b/src/connection-editor/page-wireless.c
index c2c395c..3ba41c0 100644
--- a/src/connection-editor/page-wireless.c
+++ b/src/connection-editor/page-wireless.c
@@ -61,31 +61,31 @@ static void
 wireless_private_init (CEPageWireless *self)
 {
 	CEPageWirelessPrivate *priv = CE_PAGE_WIRELESS_GET_PRIVATE (self);
-	GladeXML *xml;
+	GtkBuilder *builder;
 	GtkWidget *widget;
 
-	xml = CE_PAGE (self)->xml;
+	builder = CE_PAGE (self)->builder;
 
 	priv->group = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL);
 
-	priv->ssid     = GTK_ENTRY (glade_xml_get_widget (xml, "wireless_ssid"));
-	priv->bssid    = GTK_ENTRY (glade_xml_get_widget (xml, "wireless_bssid"));
-	priv->device_mac = GTK_ENTRY (glade_xml_get_widget (xml, "wireless_device_mac"));
-	priv->cloned_mac = GTK_ENTRY (glade_xml_get_widget (xml, "wireless_cloned_mac"));
-	priv->mode     = GTK_COMBO_BOX (glade_xml_get_widget (xml, "wireless_mode"));
-	priv->band     = GTK_COMBO_BOX (glade_xml_get_widget (xml, "wireless_band"));
-	priv->channel  = GTK_SPIN_BUTTON (glade_xml_get_widget (xml, "wireless_channel"));
+	priv->ssid     = GTK_ENTRY (GTK_WIDGET (gtk_builder_get_object (builder, "wireless_ssid")));
+	priv->bssid    = GTK_ENTRY (GTK_WIDGET (gtk_builder_get_object (builder, "wireless_bssid")));
+	priv->device_mac = GTK_ENTRY (GTK_WIDGET (gtk_builder_get_object (builder, "wireless_device_mac")));
+	priv->cloned_mac = GTK_ENTRY (GTK_WIDGET (gtk_builder_get_object (builder, "wireless_cloned_mac")));
+	priv->mode     = GTK_COMBO_BOX (GTK_WIDGET (gtk_builder_get_object (builder, "wireless_mode")));
+	priv->band     = GTK_COMBO_BOX (GTK_WIDGET (gtk_builder_get_object (builder, "wireless_band")));
+	priv->channel  = GTK_SPIN_BUTTON (GTK_WIDGET (gtk_builder_get_object (builder, "wireless_channel")));
 
-	priv->rate     = GTK_SPIN_BUTTON (glade_xml_get_widget (xml, "wireless_rate"));
-	widget = glade_xml_get_widget (xml, "rate_units");
+	priv->rate     = GTK_SPIN_BUTTON (GTK_WIDGET (gtk_builder_get_object (builder, "wireless_rate")));
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "rate_units"));
 	gtk_size_group_add_widget (priv->group, widget);
 
-	priv->tx_power = GTK_SPIN_BUTTON (glade_xml_get_widget (xml, "wireless_tx_power"));
-	widget = glade_xml_get_widget (xml, "tx_power_units");
+	priv->tx_power = GTK_SPIN_BUTTON (GTK_WIDGET (gtk_builder_get_object (builder, "wireless_tx_power")));
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "tx_power_units"));
 	gtk_size_group_add_widget (priv->group, widget);
 
-	priv->mtu      = GTK_SPIN_BUTTON (glade_xml_get_widget (xml, "wireless_mtu"));
-	widget = glade_xml_get_widget (xml, "mtu_units");
+	priv->mtu      = GTK_SPIN_BUTTON (GTK_WIDGET (gtk_builder_get_object (builder, "wireless_mtu")));
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "mtu_units"));
 	gtk_size_group_add_widget (priv->group, widget);
 }
 
@@ -230,25 +230,25 @@ mode_combo_changed_cb (GtkComboBox *combo,
  	}
 
 	if (show) {
-		widget = glade_xml_get_widget (parent->xml, "wireless_band_label");
+		widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "wireless_band_label"));
 		gtk_widget_show (widget);
 		gtk_widget_show (GTK_WIDGET (priv->band));
-		widget = glade_xml_get_widget (parent->xml, "wireless_channel_label");
+		widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "wireless_channel_label"));
 		gtk_widget_show (widget);
 		gtk_widget_show (GTK_WIDGET (priv->channel));
 	} else {
-		widget = glade_xml_get_widget (parent->xml, "wireless_band_label");
+		widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "wireless_band_label"));
 		gtk_widget_hide (widget);
 		gtk_widget_hide (GTK_WIDGET (priv->band));
-		widget = glade_xml_get_widget (parent->xml, "wireless_channel_label");
+		widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "wireless_channel_label"));
 		gtk_widget_hide (widget);
 		gtk_widget_hide (GTK_WIDGET (priv->channel));
 	}
 
-	widget = glade_xml_get_widget (parent->xml, "wireless_band_label");
+	widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "wireless_band_label"));
 	gtk_widget_set_sensitive (GTK_WIDGET (widget), show);
 	gtk_widget_set_sensitive (GTK_WIDGET (priv->band), show);
-	widget = glade_xml_get_widget (parent->xml, "wireless_channel_label");
+	widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "wireless_channel_label"));
 	gtk_widget_set_sensitive (GTK_WIDGET (widget), show);
 	gtk_widget_set_sensitive (GTK_WIDGET (priv->channel), show);
 
@@ -365,14 +365,14 @@ finish_setup (CEPageWireless *self, gpointer unused, GError *error, gpointer use
 
 	populate_ui (self);
 
-	widget = glade_xml_get_widget (parent->xml, "wireless_tx_power_label");
+	widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "wireless_tx_power_label"));
 	gtk_widget_hide (widget);
-	widget = glade_xml_get_widget (parent->xml, "wireless_tx_power_hbox");
+	widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "wireless_tx_power_hbox"));
 	gtk_widget_hide (widget);
 
-	widget = glade_xml_get_widget (parent->xml, "wireless_rate_label");
+	widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "wireless_rate_label"));
 	gtk_widget_hide (widget);
-	widget = glade_xml_get_widget (parent->xml, "wireless_rate_hbox");
+	widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "wireless_rate_hbox"));
 	gtk_widget_hide (widget);
 }
 
@@ -394,14 +394,16 @@ ce_page_wireless_new (NMConnection *connection,
 	                                       NULL));
 	parent = CE_PAGE (self);
 
-	parent->xml = glade_xml_new (GLADEDIR "/ce-page-wireless.glade", "WirelessPage", NULL);
-	if (!parent->xml) {
+    parent->builder = gtk_builder_new();
+
+    if (!gtk_builder_add_from_file (parent->builder, UIDIR "/ce-page-wireless.ui", error)) {
+        g_warning ("Couldn't load builder file: %s", (*error)->message);
 		g_set_error (error, 0, 0, "%s", _("Could not load WiFi user interface."));
 		g_object_unref (self);
 		return NULL;
 	}
 
-	parent->page = glade_xml_get_widget (parent->xml, "WirelessPage");
+	parent->page = GTK_WIDGET (gtk_builder_get_object (parent->builder, "WirelessPage"));
 	if (!parent->page) {
 		g_set_error (error, 0, 0, "%s", _("Could not load WiFi user interface."));
 		g_object_unref (self);
diff --git a/src/connection-editor/ppp-auth-methods-dialog.c b/src/connection-editor/ppp-auth-methods-dialog.c
index fe2020f..a6e4880 100644
--- a/src/connection-editor/ppp-auth-methods-dialog.c
+++ b/src/connection-editor/ppp-auth-methods-dialog.c
@@ -28,7 +28,6 @@
 #include <stdlib.h>
 #include <string.h>
 
-#include <glade/glade.h>
 #include <glib/gi18n.h>
 
 #include <nm-utils.h>
@@ -38,32 +37,32 @@
 static void
 validate (GtkWidget *dialog)
 {
-	GladeXML *xml;
+	GtkBuilder *builder;
 	GtkWidget *widget;
 	gboolean allow_eap, allow_pap, allow_chap, allow_mschap, allow_mschapv2;
 
 	g_return_if_fail (dialog != NULL);
 
-	xml = g_object_get_data (G_OBJECT (dialog), "glade-xml");
-	g_return_if_fail (xml != NULL);
-	g_return_if_fail (GLADE_IS_XML (xml));
+	builder = g_object_get_data (G_OBJECT (dialog), "builder");
+	g_return_if_fail (builder != NULL);
+	g_return_if_fail (GTK_IS_BUILDER (builder));
 
-	widget = glade_xml_get_widget (xml, "allow_eap");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "allow_eap"));
 	allow_eap = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget));
 
-	widget = glade_xml_get_widget (xml, "allow_pap");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "allow_pap"));
 	allow_pap = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget));
 
-	widget = glade_xml_get_widget (xml, "allow_chap");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "allow_chap"));
 	allow_chap = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget));
 
-	widget = glade_xml_get_widget (xml, "allow_mschap");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "allow_mschap"));
 	allow_mschap = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget));
 
-	widget = glade_xml_get_widget (xml, "allow_mschapv2");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "allow_mschapv2"));
 	allow_mschapv2 = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget));
 
-	widget = glade_xml_get_widget (xml, "ok_button");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "ok_button"));
 #if 0
 /* Ignore for now until we know whether any PPP servers simply don't request
  * authentication at all.
@@ -80,44 +79,47 @@ ppp_auth_methods_dialog_new (gboolean refuse_eap,
                              gboolean refuse_mschapv2)
 
 {
-	GladeXML *xml;
+	GtkBuilder *builder;
 	GtkWidget *dialog, *widget;
+	GError *error = NULL;
 
-	xml = glade_xml_new (GLADEDIR "/ce-page-ppp.glade", "auth_methods_dialog", NULL);
-	if (!xml) {
-		g_warning ("%s: Couldn't load PPP page glade file.", __func__);
+	builder = gtk_builder_new ();
+
+	if (!gtk_builder_add_from_file (builder, UIDIR "/ce-page-ppp.ui", &error)) {
+		g_warning ("Couldn't load builder file: %s", error->message);
+		g_error_free (error);
 		return NULL;
 	}
 
-	dialog = glade_xml_get_widget (xml, "auth_methods_dialog");
+	dialog = GTK_WIDGET (gtk_builder_get_object (builder, "auth_methods_dialog"));
 	if (!dialog) {
-		g_warning ("%s: Couldn't load PPP auth methods dialog from glade file.", __func__);
-		g_object_unref (xml);
+		g_warning ("%s: Couldn't load PPP auth methods dialog from .ui file.", __func__);
+		g_object_unref (builder);
 		return NULL;
 	}
 
 	gtk_window_set_modal (GTK_WINDOW (dialog), TRUE);
 
-	g_object_set_data_full (G_OBJECT (dialog), "glade-xml",
-	                        xml, (GDestroyNotify) g_object_unref);
+	g_object_set_data_full (G_OBJECT (dialog), "builder",
+	                        builder, (GDestroyNotify) g_object_unref);
 
-	widget = glade_xml_get_widget (xml, "allow_eap");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "allow_eap"));
 	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), !refuse_eap);
 	g_signal_connect_swapped (G_OBJECT (widget), "toggled", G_CALLBACK (validate), dialog);
 
-	widget = glade_xml_get_widget (xml, "allow_pap");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "allow_pap"));
 	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), !refuse_pap);
 	g_signal_connect_swapped (G_OBJECT (widget), "toggled", G_CALLBACK (validate), dialog);
 
-	widget = glade_xml_get_widget (xml, "allow_chap");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "allow_chap"));
 	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), !refuse_chap);
 	g_signal_connect_swapped (G_OBJECT (widget), "toggled", G_CALLBACK (validate), dialog);
 
-	widget = glade_xml_get_widget (xml, "allow_mschap");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "allow_mschap"));
 	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), !refuse_mschap);
 	g_signal_connect_swapped (G_OBJECT (widget), "toggled", G_CALLBACK (validate), dialog);
 
-	widget = glade_xml_get_widget (xml, "allow_mschapv2");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "allow_mschapv2"));
 	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), !refuse_mschapv2);
 	g_signal_connect_swapped (G_OBJECT (widget), "toggled", G_CALLBACK (validate), dialog);
 
@@ -135,7 +137,7 @@ ppp_auth_methods_dialog_get_methods (GtkWidget *dialog,
                                      gboolean *refuse_mschap,
                                      gboolean *refuse_mschapv2)
 {
-	GladeXML *xml;
+	GtkBuilder *builder;
 	GtkWidget *widget;
 
 	g_return_if_fail (dialog != NULL);
@@ -145,23 +147,23 @@ ppp_auth_methods_dialog_get_methods (GtkWidget *dialog,
 	g_return_if_fail (refuse_mschap != NULL);
 	g_return_if_fail (refuse_mschapv2 != NULL);
 
-	xml = g_object_get_data (G_OBJECT (dialog), "glade-xml");
-	g_return_if_fail (xml != NULL);
-	g_return_if_fail (GLADE_IS_XML (xml));
+	builder = g_object_get_data (G_OBJECT (dialog), "builder");
+	g_return_if_fail (builder != NULL);
+	g_return_if_fail (GTK_IS_BUILDER (builder));
 
-	widget = glade_xml_get_widget (xml, "allow_eap");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "allow_eap"));
 	*refuse_eap = !gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget));
 
-	widget = glade_xml_get_widget (xml, "allow_pap");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "allow_pap"));
 	*refuse_pap = !gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget));
 
-	widget = glade_xml_get_widget (xml, "allow_chap");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "allow_chap"));
 	*refuse_chap = !gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget));
 
-	widget = glade_xml_get_widget (xml, "allow_mschap");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "allow_mschap"));
 	*refuse_mschap = !gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget));
 
-	widget = glade_xml_get_widget (xml, "allow_mschapv2");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "allow_mschapv2"));
 	*refuse_mschapv2 = !gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget));
 }
 
diff --git a/src/connection-editor/vpn-helpers.c b/src/connection-editor/vpn-helpers.c
index a0313d7..bde55a0 100644
--- a/src/connection-editor/vpn-helpers.c
+++ b/src/connection-editor/vpn-helpers.c
@@ -24,7 +24,6 @@
 #include <glib.h>
 #include <gmodule.h>
 #include <gtk/gtk.h>
-#include <glade/glade.h>
 #include <glib/gi18n.h>
 
 #include <nm-connection.h>
@@ -473,30 +472,32 @@ error:
 char *
 vpn_ask_connection_type (GtkWindow *parent)
 {
-	GladeXML *xml;
+	GtkBuilder *builder;
 	GtkWidget *dialog, *combo, *widget;
 	GtkTreeModel *model;
 	GSList *plugin_list = NULL, *iter;
 	gint response;
 	GtkTreeIter tree_iter;
 	char *service_type = NULL;
+	GError *error = NULL;
 
 	if (!plugins || !g_hash_table_size (plugins)) {
 		g_warning ("%s: no VPN plugins could be found!", __func__);
 		return NULL;
 	}
 
-	xml = glade_xml_new (GLADEDIR "/ce-vpn-wizard.glade", "vpn_type_dialog", NULL);
-	if (!xml) {
-		g_warning ("%s: couldn't load VPN wizard glade file '%s'!",
-		           __func__, GLADEDIR "/ce-vpn-wizard.glade");
+	builder = gtk_builder_new();
+
+	if (!gtk_builder_add_from_file (builder, UIDIR "/ce-vpn-wizard.ui", &error)) {
+		g_warning ("Couldn't load builder file: %s", error->message);
+		g_error_free (error);
 		return NULL;
 	}
 
-	dialog = glade_xml_get_widget (xml, "vpn_type_dialog");
+	dialog = GTK_WIDGET (gtk_builder_get_object (builder, "vpn_type_dialog"));
 	if (!dialog) {
 		g_warning ("%s: couldn't load VPN wizard dialog!", __func__);
-		g_object_unref (xml);
+		g_object_unref (builder);
 		return NULL;
 	}
 
@@ -515,8 +516,8 @@ vpn_ask_connection_type (GtkWindow *parent)
 		                    COL_PLUGIN_OBJ, plugin, -1);
 	}
 
-	combo = glade_xml_get_widget (xml, "vpn_type_combo");
-	widget = glade_xml_get_widget (xml, "vpn_desc_label");
+	combo = GTK_WIDGET (gtk_builder_get_object (builder, "vpn_type_combo"));
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "vpn_desc_label"));
 	g_signal_connect (G_OBJECT (combo), "changed", G_CALLBACK (combo_changed_cb), widget);
 	gtk_combo_box_set_model (GTK_COMBO_BOX (combo), model);
 	gtk_combo_box_set_active (GTK_COMBO_BOX (combo), 0);
@@ -537,7 +538,7 @@ vpn_ask_connection_type (GtkWindow *parent)
 
 out:
 	gtk_widget_destroy (dialog);
-	g_object_unref (xml);
+	g_object_unref (builder);
 	if (service_type)
 		return g_strdup (service_type);
 	return NULL;
diff --git a/src/gnome-bluetooth/bt-widget.c b/src/gnome-bluetooth/bt-widget.c
index 380b80a..cb3c278 100644
--- a/src/gnome-bluetooth/bt-widget.c
+++ b/src/gnome-bluetooth/bt-widget.c
@@ -719,7 +719,7 @@ dun_start (PluginInfo *info)
 		info->spinner = gtk_spinner_new ();
 		gtk_box_pack_start (GTK_BOX (info->hbox), info->spinner, FALSE, FALSE, 6);
 	}
-	gtk_spinner_start (GTK_SPINNER (info->spinner))
+	gtk_spinner_start (GTK_SPINNER (info->spinner));
 	gtk_widget_show_all (info->hbox);
 
 	gtk_widget_set_sensitive (info->dun_button, FALSE);
diff --git a/src/utils/Makefile.am b/src/utils/Makefile.am
index d35bab7..cfa69c5 100644
--- a/src/utils/Makefile.am
+++ b/src/utils/Makefile.am
@@ -13,7 +13,7 @@ libutils_la_SOURCES = \
 libutils_la_CPPFLAGS = \
 	$(GTK_CFLAGS) \
 	$(NMA_CFLAGS) \
-	-DGLADEDIR=\""$(gladedir)"\" \
+	-DUIDIR=\""$(uidir)"\" \
 	-DDATADIR=\""$(datadir)"\" \
 	$(DISABLE_DEPRECATED) \
 	-I${top_srcdir}/src/gconf-helpers \
diff --git a/src/utils/mobile-wizard.c b/src/utils/mobile-wizard.c
index f84a49d..faea9d7 100644
--- a/src/utils/mobile-wizard.c
+++ b/src/utils/mobile-wizard.c
@@ -25,7 +25,6 @@
 #include <glib.h>
 #include <glib/gi18n.h>
 
-#include <glade/glade.h>
 #include <gtk/gtk.h>
 
 #include <NetworkManager.h>
diff --git a/src/vpn-password-dialog.c b/src/vpn-password-dialog.c
index a4fbda7..ce5214d 100644
--- a/src/vpn-password-dialog.c
+++ b/src/vpn-password-dialog.c
@@ -25,7 +25,6 @@
 #include <stdlib.h>
 #include <string.h>
 #include <gtk/gtk.h>
-#include <glade/glade.h>
 #include <glib.h>
 #include <dbus/dbus.h>
 #include <dbus/dbus-glib.h>
diff --git a/src/wired-dialog.c b/src/wired-dialog.c
index d09bf9b..4a395a9 100644
--- a/src/wired-dialog.c
+++ b/src/wired-dialog.c
@@ -56,14 +56,14 @@ dialog_set_network_name (NMConnection *connection, GtkEntry *entry)
 
 static WirelessSecurity *
 dialog_set_security (NMConnection *connection,
-					 const char *glade_file,
+					 const char *ui_file,
 					 GtkBox *box)
 {
 	GList *children;
 	GList *iter;
 	WirelessSecurity *security;
 
-	security = (WirelessSecurity *) ws_wpa_eap_new (glade_file, connection, FALSE);
+	security = (WirelessSecurity *) ws_wpa_eap_new (ui_file, connection, FALSE);
 
 	/* Remove any previous wireless security widgets */
 	children = gtk_container_get_children (GTK_CONTAINER (box));
@@ -77,66 +77,70 @@ dialog_set_security (NMConnection *connection,
 
 static gboolean
 dialog_init (GtkWidget *dialog,
-			 GladeXML *xml,
+			 GtkBuilder *builder,
 			 NMClient *nm_client,
-			 const char *glade_file,
+			 const char *ui_file,
 			 NMConnection *connection)
 {
 	WirelessSecurity *security;
 	GtkWidget *widget;
 
 	/* Hide bunch of wireless specific widgets */
-	gtk_widget_hide (glade_xml_get_widget (xml, "device_label"));
-	gtk_widget_hide (glade_xml_get_widget (xml, "device_combo"));
-	gtk_widget_hide (glade_xml_get_widget (xml, "security_combo_label"));
-	gtk_widget_hide (glade_xml_get_widget (xml, "security_combo"));
+	gtk_widget_hide (GTK_WIDGET (gtk_builder_get_object (builder, "device_label")));
+	gtk_widget_hide (GTK_WIDGET (gtk_builder_get_object (builder, "device_combo")));
+	gtk_widget_hide (GTK_WIDGET (gtk_builder_get_object (builder, "security_combo_label")));
+	gtk_widget_hide (GTK_WIDGET (gtk_builder_get_object (builder, "security_combo")));
 
 	/* The dialog won't ever get called for more than one connection for wired */
-	gtk_widget_hide (glade_xml_get_widget (xml, "connection_label"));
-	gtk_widget_hide (glade_xml_get_widget (xml, "connection_combo"));
+	gtk_widget_hide (GTK_WIDGET (gtk_builder_get_object (builder, "connection_label")));
+	gtk_widget_hide (GTK_WIDGET (gtk_builder_get_object (builder, "connection_combo")));
 
-	gtk_window_set_title (GTK_WINDOW (glade_xml_get_widget (xml, "wireless_dialog")),
+	gtk_window_set_title (GTK_WINDOW (GTK_WIDGET (gtk_builder_get_object (builder, "wireless_dialog"))),
 	                      _("Wired 802.1X authentication"));
 
-	dialog_set_network_name (connection, GTK_ENTRY (glade_xml_get_widget (xml, "network_name_entry")));
-	security = dialog_set_security (connection, glade_file, GTK_BOX (glade_xml_get_widget (xml, "security_vbox")));
-	wireless_security_set_changed_notify (security, stuff_changed_cb, glade_xml_get_widget (xml, "ok_button"));
+	dialog_set_network_name (connection, GTK_ENTRY (GTK_WIDGET (gtk_builder_get_object (builder, "network_name_entry"))));
+	security = dialog_set_security (connection, ui_file, GTK_BOX (GTK_WIDGET (gtk_builder_get_object (builder, "security_vbox"))));
+	wireless_security_set_changed_notify (security, stuff_changed_cb, GTK_WIDGET (gtk_builder_get_object (builder, "ok_button")));
 
 	g_object_set_data_full (G_OBJECT (dialog),
 	                        "security", security,
 	                        (GDestroyNotify) wireless_security_unref);
 
 	gtk_window_set_icon_name (GTK_WINDOW (dialog), "dialog-password");
-	widget = glade_xml_get_widget (xml, "image1");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "image1"));
 	gtk_image_set_from_icon_name (GTK_IMAGE (widget), "dialog-password", GTK_ICON_SIZE_DIALOG);
 
 	return TRUE;
 }
 
 GtkWidget *
-nma_wired_dialog_new (const char *glade_file,
+nma_wired_dialog_new (const char *ui_file,
 					  NMClient *nm_client,
 					  NMSettingsConnectionInterface *connection,
 					  NMDevice *device)
 {
-	GladeXML *xml;
+	GtkBuilder *builder;
 	GtkWidget *dialog;
 	gboolean success;
+	GError *error = NULL;
 
-	xml = glade_xml_new (glade_file, "wireless_dialog", NULL);
-	if (!xml) {
-		applet_warning_dialog_show (_("The NetworkManager Applet could not find some required resources (the glade file was not found)."));
+	builder = gtk_builder_new ();
+
+	if (!gtk_builder_add_from_file (builder, ui_file, &error)) {
+		g_warning ("Couldn't load builder file: %s", error->message);
+		g_error_free (error);
+		applet_warning_dialog_show (_("The NetworkManager Applet could not find some required resources (the .ui file was not found)."));
 		return NULL;
 	}
 
-	dialog = glade_xml_get_widget (xml, "wireless_dialog");
+	dialog = GTK_WIDGET (gtk_builder_get_object (builder, "wireless_dialog"));
 	if (!dialog) {
-		nm_warning ("Couldn't find glade wireless_dialog widget.");
-		g_object_unref (xml);
+		nm_warning ("Couldn't find wireless_dialog widget.");
+		g_object_unref (builder);
 		return NULL;
 	}
 
-	success = dialog_init (dialog, xml, nm_client, glade_file, NM_CONNECTION (connection));
+	success = dialog_init (dialog, builder, nm_client, ui_file, NM_CONNECTION (connection));
 	if (!success) {
 		nm_warning ("Couldn't create wired security dialog.");
 		gtk_widget_destroy (dialog);
diff --git a/src/wired-dialog.h b/src/wired-dialog.h
index 75c6433..f89b540 100644
--- a/src/wired-dialog.h
+++ b/src/wired-dialog.h
@@ -30,7 +30,7 @@
 #include <nm-device.h>
 #include <nm-settings-connection-interface.h>
 
-GtkWidget *nma_wired_dialog_new (const char *glade_file,
+GtkWidget *nma_wired_dialog_new (const char *ui_file,
 								 NMClient *nm_client,
 								 NMSettingsConnectionInterface *connection,
 								 NMDevice *device);
diff --git a/src/wireless-dialog.c b/src/wireless-dialog.c
index 621526f..1961ff9 100644
--- a/src/wireless-dialog.c
+++ b/src/wireless-dialog.c
@@ -28,7 +28,6 @@
 
 #include <glib/gi18n.h>
 #include <gtk/gtk.h>
-#include <glade/glade.h>
 #include <netinet/ether.h>
 
 #include <nm-client.h>
@@ -60,8 +59,8 @@ typedef struct {
 typedef struct {
 	NMApplet *applet;
 
-	char *glade_file;
-	GladeXML *xml;
+	char *ui_file;
+	GtkBuilder *builder;
 
 	NMConnection *connection;
 	NMDevice *device;
@@ -150,20 +149,20 @@ size_group_clear (GtkSizeGroup *group)
 
 static void
 size_group_add_permanent (GtkSizeGroup *group,
-                          GladeXML *xml)
+                          GtkBuilder *builder)
 {
 	GtkWidget *widget;
 
 	g_return_if_fail (group != NULL);
-	g_return_if_fail (xml != NULL);
+	g_return_if_fail (builder != NULL);
 
-	widget = glade_xml_get_widget (xml, "network_name_label");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "network_name_label"));
 	gtk_size_group_add_widget (group, widget);
 
-	widget = glade_xml_get_widget (xml, "security_combo_label");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "security_combo_label"));
 	gtk_size_group_add_widget (group, widget);
 
-	widget = glade_xml_get_widget (xml, "device_label");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "device_label"));
 	gtk_size_group_add_widget (group, widget);
 }
 
@@ -179,7 +178,7 @@ security_combo_changed (GtkWidget *combo,
 	GtkTreeModel *model;
 	WirelessSecurity *sec = NULL;
 
-	vbox = glade_xml_get_widget (priv->xml, "security_vbox");
+	vbox = GTK_WIDGET (gtk_builder_get_object (priv->builder, "security_vbox"));
 	g_assert (vbox);
 
 	size_group_clear (priv->group);
@@ -206,8 +205,9 @@ security_combo_changed (GtkWidget *combo,
 
 	sec_widget = wireless_security_get_widget (sec);
 	g_assert (sec_widget);
+	gtk_widget_unparent (sec_widget);
 
-	size_group_add_permanent (priv->group, priv->xml);
+	size_group_add_permanent (priv->group, priv->builder);
 	wireless_security_add_to_size_group (sec, priv->group);
 
 	gtk_container_add (GTK_CONTAINER (vbox), sec_widget);
@@ -219,7 +219,7 @@ security_combo_changed (GtkWidget *combo,
 	 * network name entry should not be focused.
 	 */
 	if (!priv->network_name_focus && sec->default_field) {
-		def_widget = glade_xml_get_widget (sec->xml, sec->default_field);
+		def_widget = GTK_WIDGET (gtk_builder_get_object (sec->builder, sec->default_field));
 		if (def_widget)
 			gtk_widget_grab_focus (def_widget);
 	}
@@ -258,7 +258,7 @@ validate_dialog_ssid (NMAWirelessDialog *self)
 	guint32 ssid_len;
 	GByteArray *ssid_ba;
 
-	widget = glade_xml_get_widget (priv->xml, "network_name_entry");
+	widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "network_name_entry"));
 
 	ssid = gtk_entry_get_text (GTK_ENTRY (widget));
 	ssid_len = strlen (ssid);
@@ -386,7 +386,7 @@ connection_combo_changed (GtkWidget *combo,
 	}
 	security_combo_changed (priv->sec_combo, self);
 
-	widget = glade_xml_get_widget (priv->xml, "network_name_entry");
+	widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "network_name_entry"));
 	if (priv->connection) {
 		const GByteArray *ssid;
 
@@ -399,11 +399,11 @@ connection_combo_changed (GtkWidget *combo,
 		gtk_entry_set_text (GTK_ENTRY (widget), "");
 	}
 
-	gtk_widget_set_sensitive (glade_xml_get_widget (priv->xml, "network_name_entry"), is_new);
-	gtk_widget_set_sensitive (glade_xml_get_widget (priv->xml, "network_name_label"), is_new);
-	gtk_widget_set_sensitive (glade_xml_get_widget (priv->xml, "security_combo"), is_new);
-	gtk_widget_set_sensitive (glade_xml_get_widget (priv->xml, "security_combo_label"), is_new);
-	gtk_widget_set_sensitive (glade_xml_get_widget (priv->xml, "security_vbox"), is_new);
+	gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (priv->builder, "network_name_entry")), is_new);
+	gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (priv->builder, "network_name_label")), is_new);
+	gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (priv->builder, "security_combo")), is_new);
+	gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (priv->builder, "security_combo_label")), is_new);
+	gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (priv->builder, "security_vbox")), is_new);
 }
 
 static GSList *
@@ -549,7 +549,7 @@ connection_combo_init (NMAWirelessDialog *self, NMConnection *connection)
 		g_slist_free (to_add);
 	}
 
-	widget = glade_xml_get_widget (priv->xml, "connection_combo");
+	widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "connection_combo"));
 
 	gtk_cell_layout_clear (GTK_CELL_LAYOUT (widget));
 	renderer = gtk_cell_renderer_text_new ();
@@ -569,7 +569,7 @@ connection_combo_init (NMAWirelessDialog *self, NMConnection *connection)
 	g_signal_connect (G_OBJECT (widget), "changed",
 	                  G_CALLBACK (connection_combo_changed), self);
 	if (connection || !num_added) {
-		gtk_widget_hide (glade_xml_get_widget (priv->xml, "connection_label"));
+		gtk_widget_hide (GTK_WIDGET (gtk_builder_get_object (priv->builder, "connection_label")));
 		gtk_widget_hide (widget);
 	}
 	gtk_tree_model_get_iter_first (priv->connection_model, &tree_iter);
@@ -673,13 +673,13 @@ device_combo_init (NMAWirelessDialog *self, NMDevice *device)
 		GtkWidget *widget;
 		GtkTreeIter iter;
 
-		widget = glade_xml_get_widget (priv->xml, "device_combo");
+		widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "device_combo"));
 		gtk_combo_box_set_model (GTK_COMBO_BOX (widget), priv->device_model);
 		gtk_combo_box_set_active (GTK_COMBO_BOX (widget), 0);
 		g_signal_connect (G_OBJECT (widget), "changed",
 		                  G_CALLBACK (device_combo_changed), self);
 		if (num_added == 1) {
-			gtk_widget_hide (glade_xml_get_widget (priv->xml, "device_label"));
+			gtk_widget_hide (GTK_WIDGET (gtk_builder_get_object (priv->builder, "device_label")));
 			gtk_widget_hide (widget);
 		}
 		gtk_tree_model_get_iter_first (priv->device_model, &iter);
@@ -930,7 +930,7 @@ security_combo_init (NMAWirelessDialog *self, gboolean auth_only)
 	    && ((!ap_wpa && !ap_rsn) || !(dev_caps & (NM_WIFI_DEVICE_CAP_WPA | NM_WIFI_DEVICE_CAP_RSN)))) {
 		WirelessSecurityWEPKey *ws_wep;
 
-		ws_wep = ws_wep_key_new (priv->glade_file, priv->connection, NM_WEP_KEY_TYPE_KEY, priv->adhoc_create, auth_only);
+		ws_wep = ws_wep_key_new (priv->ui_file, priv->connection, NM_WEP_KEY_TYPE_KEY, priv->adhoc_create, auth_only);
 		if (ws_wep) {
 			add_security_item (self, WIRELESS_SECURITY (ws_wep), sec_model,
 			                   &iter, _("WEP 40/128-bit Key (Hex or ASCII)"));
@@ -939,7 +939,7 @@ security_combo_init (NMAWirelessDialog *self, gboolean auth_only)
 			item++;
 		}
 
-		ws_wep = ws_wep_key_new (priv->glade_file, priv->connection, NM_WEP_KEY_TYPE_PASSPHRASE, priv->adhoc_create, auth_only);
+		ws_wep = ws_wep_key_new (priv->ui_file, priv->connection, NM_WEP_KEY_TYPE_PASSPHRASE, priv->adhoc_create, auth_only);
 		if (ws_wep) {
 			add_security_item (self, WIRELESS_SECURITY (ws_wep), sec_model,
 			                   &iter, _("WEP 128-bit Passphrase"));
@@ -956,7 +956,7 @@ security_combo_init (NMAWirelessDialog *self, gboolean auth_only)
 	    && ((!ap_wpa && !ap_rsn) || !(dev_caps & (NM_WIFI_DEVICE_CAP_WPA | NM_WIFI_DEVICE_CAP_RSN)))) {
 		WirelessSecurityLEAP *ws_leap;
 
-		ws_leap = ws_leap_new (priv->glade_file, priv->connection);
+		ws_leap = ws_leap_new (priv->ui_file, priv->connection);
 		if (ws_leap) {
 			add_security_item (self, WIRELESS_SECURITY (ws_leap), sec_model,
 			                   &iter, _("LEAP"));
@@ -969,7 +969,7 @@ security_combo_init (NMAWirelessDialog *self, gboolean auth_only)
 	if (nm_utils_security_valid (NMU_SEC_DYNAMIC_WEP, dev_caps, !!priv->ap, is_adhoc, ap_flags, ap_wpa, ap_rsn)) {
 		WirelessSecurityDynamicWEP *ws_dynamic_wep;
 
-		ws_dynamic_wep = ws_dynamic_wep_new (priv->glade_file, priv->connection, FALSE);
+		ws_dynamic_wep = ws_dynamic_wep_new (priv->ui_file, priv->connection, FALSE);
 		if (ws_dynamic_wep) {
 			add_security_item (self, WIRELESS_SECURITY (ws_dynamic_wep), sec_model,
 			                   &iter, _("Dynamic WEP (802.1x)"));
@@ -983,7 +983,7 @@ security_combo_init (NMAWirelessDialog *self, gboolean auth_only)
 	    || nm_utils_security_valid (NMU_SEC_WPA2_PSK, dev_caps, !!priv->ap, is_adhoc, ap_flags, ap_wpa, ap_rsn)) {
 		WirelessSecurityWPAPSK *ws_wpa_psk;
 
-		ws_wpa_psk = ws_wpa_psk_new (priv->glade_file, priv->connection);
+		ws_wpa_psk = ws_wpa_psk_new (priv->ui_file, priv->connection);
 		if (ws_wpa_psk) {
 			add_security_item (self, WIRELESS_SECURITY (ws_wpa_psk), sec_model,
 			                   &iter, _("WPA & WPA2 Personal"));
@@ -997,7 +997,7 @@ security_combo_init (NMAWirelessDialog *self, gboolean auth_only)
 	    || nm_utils_security_valid (NMU_SEC_WPA2_ENTERPRISE, dev_caps, !!priv->ap, is_adhoc, ap_flags, ap_wpa, ap_rsn)) {
 		WirelessSecurityWPAEAP *ws_wpa_eap;
 
-		ws_wpa_eap = ws_wpa_eap_new (priv->glade_file, priv->connection, FALSE);
+		ws_wpa_eap = ws_wpa_eap_new (priv->ui_file, priv->connection, FALSE);
 		if (ws_wpa_eap) {
 			add_security_item (self, WIRELESS_SECURITY (ws_wpa_eap), sec_model,
 			                   &iter, _("WPA & WPA2 Enterprise"));
@@ -1077,7 +1077,7 @@ internal_init (NMAWirelessDialog *self,
 		icon_name = "network-wireless";
 
 	gtk_window_set_icon_name (GTK_WINDOW (self), icon_name);
-	widget = glade_xml_get_widget (priv->xml, "image1");
+	widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "image1"));
 	gtk_image_set_from_icon_name (GTK_IMAGE (widget), icon_name, GTK_ICON_SIZE_DIALOG);
 
 	gtk_box_set_spacing (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (self))), 2);
@@ -1104,26 +1104,27 @@ internal_init (NMAWirelessDialog *self,
 	g_object_set (G_OBJECT (widget), "can-default", TRUE, NULL);
 	gtk_widget_grab_default (widget);
 
-	widget = glade_xml_get_widget (priv->xml, "hbox1");
+	widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "hbox1"));
 	if (!widget) {
-		nm_warning ("Couldn't find glade wireless_dialog widget.");
+		nm_warning ("Couldn't find wireless_dialog widget.");
 		return FALSE;
 	}
+	gtk_widget_unparent (widget);
 
 	gtk_container_add (GTK_CONTAINER (gtk_dialog_get_content_area (GTK_DIALOG (self))), widget);
 
 	/* If given a valid connection, hide the SSID bits and connection combo */
 	if (specific_connection) {
-		widget = glade_xml_get_widget (priv->xml, "network_name_label");
+		widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "network_name_label"));
 		gtk_widget_hide (widget);
 
-		widget = glade_xml_get_widget (priv->xml, "network_name_entry");
+		widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "network_name_entry"));
 		gtk_widget_hide (widget);
 
 		security_combo_focus = TRUE;
 		priv->network_name_focus = FALSE;
 	} else {
-		widget = glade_xml_get_widget (priv->xml, "network_name_entry");
+		widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "network_name_entry"));
 		g_signal_connect (G_OBJECT (widget), "changed", (GCallback) ssid_entry_changed, self);
 		priv->network_name_focus = TRUE;
 	}
@@ -1156,7 +1157,7 @@ internal_init (NMAWirelessDialog *self,
 	if (security_combo_focus)
 		gtk_widget_grab_focus (priv->sec_combo);
 	else if (priv->network_name_focus) {
-		widget = glade_xml_get_widget (priv->xml, "network_name_entry");
+		widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "network_name_entry"));
 		gtk_widget_grab_focus (widget);
 	}
 
@@ -1191,7 +1192,7 @@ internal_init (NMAWirelessDialog *self,
 		                         _("Enter the name and security details of the hidden wireless network you wish to connect to."));
 	}
 
-	widget = glade_xml_get_widget (priv->xml, "caption_label");
+	widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "caption_label"));
 	gtk_label_set_markup (GTK_LABEL (widget), label);
 	g_free (label);
 
@@ -1275,7 +1276,7 @@ nma_wireless_dialog_get_connection (NMAWirelessDialog *self,
 	}
 
 	/* Fill device */
-	combo = glade_xml_get_widget (priv->xml, "device_combo");
+	combo = GTK_WIDGET (gtk_builder_get_object (priv->builder, "device_combo"));
 	gtk_combo_box_get_active_iter (GTK_COMBO_BOX (combo), &iter);
 	gtk_tree_model_get (priv->device_model, &iter, D_DEV_COLUMN, device, -1);
 	g_object_unref (*device);
@@ -1315,7 +1316,7 @@ nma_wireless_dialog_new (NMApplet *applet,
 	priv->applet = applet;
 	priv->ap = g_object_ref (ap);
 
-	priv->sec_combo = glade_xml_get_widget (priv->xml, "security_combo");
+	priv->sec_combo = GTK_WIDGET (gtk_builder_get_object (priv->builder, "security_combo"));
 	priv->group = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL);
 
 	if (!internal_init (self, connection, device, TRUE, FALSE)) {
@@ -1342,7 +1343,7 @@ internal_new_other (NMApplet *applet, gboolean create)
 	priv = NMA_WIRELESS_DIALOG_GET_PRIVATE (self);
 
 	priv->applet = applet;
-	priv->sec_combo = glade_xml_get_widget (priv->xml, "security_combo");
+	priv->sec_combo = GTK_WIDGET (gtk_builder_get_object (priv->builder, "security_combo"));
 	priv->group = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL);
 	priv->adhoc_create = create;
 
@@ -1380,7 +1381,7 @@ nma_wireless_dialog_nag_user (NMAWirelessDialog *self)
 
 	priv = NMA_WIRELESS_DIALOG_GET_PRIVATE (self);
 
-	combo = glade_xml_get_widget (priv->xml, "security_combo");
+	combo = GTK_WIDGET (gtk_builder_get_object (priv->builder, "security_combo"));
 	g_return_val_if_fail (combo != NULL, NULL);
 
 	/* Ask the security method if it wants to nag the user. */
@@ -1397,9 +1398,15 @@ static void
 nma_wireless_dialog_init (NMAWirelessDialog *self)
 {
 	NMAWirelessDialogPrivate *priv = NMA_WIRELESS_DIALOG_GET_PRIVATE (self);
+	GError *error = NULL;
 
-	priv->glade_file = g_build_filename (GLADEDIR, "applet.glade", NULL);
-	priv->xml = glade_xml_new (priv->glade_file, "hbox1", NULL);
+	priv->ui_file = g_build_filename (UIDIR, "applet.ui", NULL);
+	priv->builder = gtk_builder_new();
+
+	if (!gtk_builder_add_from_file (priv->builder, priv->ui_file, &error)) {
+		g_warning ("Couldn't load builder file: %s", error->message);
+		g_error_free (error);
+	}
 }
 
 static void
@@ -1417,9 +1424,9 @@ dispose (GObject *object)
 	if (priv->secrets_info)
 		priv->secrets_info->canceled = TRUE;
 
-	g_free (priv->glade_file);
+	g_free (priv->ui_file);
 
-	g_object_unref (priv->xml);
+	g_object_unref (priv->builder);
 
 	model_free (priv->device_model, D_NAME_COLUMN);
 	model_free (priv->connection_model, C_NAME_COLUMN);
diff --git a/src/wireless-security/eap-method-leap.c b/src/wireless-security/eap-method-leap.c
index 8314647..626e9b0 100644
--- a/src/wireless-security/eap-method-leap.c
+++ b/src/wireless-security/eap-method-leap.c
@@ -20,7 +20,6 @@
  * (C) Copyright 2007 - 2009 Red Hat, Inc.
  */
 
-#include <glade/glade.h>
 #include <ctype.h>
 #include <string.h>
 #include <nm-setting-8021x.h>
@@ -36,7 +35,7 @@ show_toggled_cb (GtkCheckButton *button, EAPMethod *method)
 	GtkWidget *widget;
 	gboolean visible;
 
-	widget = glade_xml_get_widget (method->xml, "eap_leap_password_entry");
+	widget = GTK_WIDGET (gtk_builder_get_object (method->builder, "eap_leap_password_entry"));
 	g_assert (widget);
 
 	visible = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (button));
@@ -57,13 +56,13 @@ validate (EAPMethod *parent)
 	GtkWidget *widget;
 	const char *text;
 
-	widget = glade_xml_get_widget (parent->xml, "eap_leap_username_entry");
+	widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "eap_leap_username_entry"));
 	g_assert (widget);
 	text = gtk_entry_get_text (GTK_ENTRY (widget));
 	if (!text || !strlen (text))
 		return FALSE;
 
-	widget = glade_xml_get_widget (parent->xml, "eap_leap_password_entry");
+	widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "eap_leap_password_entry"));
 	g_assert (widget);
 	text = gtk_entry_get_text (GTK_ENTRY (widget));
 	if (!text || !strlen (text))
@@ -77,11 +76,11 @@ add_to_size_group (EAPMethod *parent, GtkSizeGroup *group)
 {
 	GtkWidget *widget;
 
-	widget = glade_xml_get_widget (parent->xml, "eap_leap_username_label");
+	widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "eap_leap_username_label"));
 	g_assert (widget);
 	gtk_size_group_add_widget (group, widget);
 
-	widget = glade_xml_get_widget (parent->xml, "eap_leap_password_label");
+	widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "eap_leap_password_label"));
 	g_assert (widget);
 	gtk_size_group_add_widget (group, widget);
 }
@@ -97,11 +96,11 @@ fill_connection (EAPMethod *parent, NMConnection *connection)
 
 	nm_setting_802_1x_add_eap_method (s_8021x, "leap");
 
-	widget = glade_xml_get_widget (parent->xml, "eap_leap_username_entry");
+	widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "eap_leap_username_entry"));
 	g_assert (widget);
 	g_object_set (s_8021x, NM_SETTING_802_1X_IDENTITY, gtk_entry_get_text (GTK_ENTRY (widget)), NULL);
 
-	widget = glade_xml_get_widget (parent->xml, "eap_leap_password_entry");
+	widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "eap_leap_password_entry"));
 	g_assert (widget);
 	g_object_set (s_8021x, NM_SETTING_802_1X_PASSWORD, gtk_entry_get_text (GTK_ENTRY (widget)), NULL);
 }
@@ -110,36 +109,40 @@ static void
 update_secrets (EAPMethod *parent, NMConnection *connection)
 {
 	helper_fill_secret_entry (connection,
-	                          parent->xml,
+	                          parent->builder,
 	                          "eap_leap_password_entry",
 	                          NM_TYPE_SETTING_802_1X,
 	                          (HelperSecretFunc) nm_setting_802_1x_get_password);
 }
 
 EAPMethodLEAP *
-eap_method_leap_new (const char *glade_file,
+eap_method_leap_new (const char *ui_file,
                      WirelessSecurity *parent,
                      NMConnection *connection)
 {
 	EAPMethodLEAP *method;
 	GtkWidget *widget;
-	GladeXML *xml;
+	GtkBuilder *builder;
+	GError *error = NULL;
 
-	g_return_val_if_fail (glade_file != NULL, NULL);
+	g_return_val_if_fail (ui_file != NULL, NULL);
 
-	xml = glade_xml_new (glade_file, "eap_leap_notebook", NULL);
-	if (xml == NULL) {
-		g_warning ("Couldn't get eap_leap_widget from glade xml");
+	builder = gtk_builder_new ();
+
+	if (!gtk_builder_add_from_file (builder, ui_file, &error))
+	{
+		g_warning ("Couldn't load builder file: %s", error->message);
+		g_error_free (error);
 		return NULL;
 	}
 
-	widget = glade_xml_get_widget (xml, "eap_leap_notebook");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "eap_leap_notebook"));
 	g_assert (widget);
 	g_object_ref_sink (widget);
 
 	method = g_slice_new0 (EAPMethodLEAP);
 	if (!method) {
-		g_object_unref (xml);
+		g_object_unref (builder);
 		g_object_unref (widget);
 		return NULL;
 	}
@@ -150,11 +153,11 @@ eap_method_leap_new (const char *glade_file,
 	                 fill_connection,
 	                 update_secrets,
 	                 destroy,
-	                 xml,
+	                 builder,
 	                 widget,
 	                 "eap_leap_username_entry");
 
-	widget = glade_xml_get_widget (xml, "eap_leap_username_entry");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "eap_leap_username_entry"));
 	g_assert (widget);
 	g_signal_connect (G_OBJECT (widget), "changed",
 	                  (GCallback) wireless_security_changed_cb,
@@ -167,7 +170,7 @@ eap_method_leap_new (const char *glade_file,
 			gtk_entry_set_text (GTK_ENTRY (widget), nm_setting_802_1x_get_identity (s_8021x));
 	}
 
-	widget = glade_xml_get_widget (xml, "eap_leap_password_entry");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "eap_leap_password_entry"));
 	g_assert (widget);
 	g_signal_connect (G_OBJECT (widget), "changed",
 	                  (GCallback) wireless_security_changed_cb,
@@ -177,7 +180,7 @@ eap_method_leap_new (const char *glade_file,
 	if (connection)
 		update_secrets (EAP_METHOD (method), connection);
 
-	widget = glade_xml_get_widget (xml, "show_checkbutton");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "show_checkbutton_eapleap"));
 	g_assert (widget);
 	g_signal_connect (G_OBJECT (widget), "toggled",
 	                  (GCallback) show_toggled_cb,
diff --git a/src/wireless-security/eap-method-leap.h b/src/wireless-security/eap-method-leap.h
index dc6de16..18ac098 100644
--- a/src/wireless-security/eap-method-leap.h
+++ b/src/wireless-security/eap-method-leap.h
@@ -30,7 +30,7 @@ typedef struct {
 
 } EAPMethodLEAP;
 
-EAPMethodLEAP * eap_method_leap_new (const char *glade_file,
+EAPMethodLEAP * eap_method_leap_new (const char *ui_file,
                                      WirelessSecurity *parent,
                                      NMConnection *connection);
 
diff --git a/src/wireless-security/eap-method-peap.c b/src/wireless-security/eap-method-peap.c
index 49faf12..764b0d0 100644
--- a/src/wireless-security/eap-method-peap.c
+++ b/src/wireless-security/eap-method-peap.c
@@ -21,7 +21,6 @@
  */
 
 #include <glib/gi18n.h>
-#include <glade/glade.h>
 #include <ctype.h>
 #include <string.h>
 
@@ -54,10 +53,10 @@ validate (EAPMethod *parent)
 	EAPMethod *eap = NULL;
 	gboolean valid = FALSE;
 
-	if (!eap_method_validate_filepicker (parent->xml, "eap_peap_ca_cert_button", TYPE_CA_CERT, NULL, NULL))
+	if (!eap_method_validate_filepicker (parent->builder, "eap_peap_ca_cert_button", TYPE_CA_CERT, NULL, NULL))
 		return FALSE;
 
-	widget = glade_xml_get_widget (parent->xml, "eap_peap_inner_auth_combo");
+	widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "eap_peap_inner_auth_combo"));
 	g_assert (widget);
 
 	model = gtk_combo_box_get_model (GTK_COMBO_BOX (widget));
@@ -82,23 +81,23 @@ add_to_size_group (EAPMethod *parent, GtkSizeGroup *group)
 		g_object_unref (method->size_group);
 	method->size_group = g_object_ref (group);
 
-	widget = glade_xml_get_widget (parent->xml, "eap_peap_anon_identity_label");
+	widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "eap_peap_anon_identity_label"));
 	g_assert (widget);
 	gtk_size_group_add_widget (group, widget);
 
-	widget = glade_xml_get_widget (parent->xml, "eap_peap_ca_cert_label");
+	widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "eap_peap_ca_cert_label"));
 	g_assert (widget);
 	gtk_size_group_add_widget (group, widget);
 
-	widget = glade_xml_get_widget (parent->xml, "eap_peap_version_label");
+	widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "eap_peap_version_label"));
 	g_assert (widget);
 	gtk_size_group_add_widget (group, widget);
 
-	widget = glade_xml_get_widget (parent->xml, "eap_peap_inner_auth_label");
+	widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "eap_peap_inner_auth_label"));
 	g_assert (widget);
 	gtk_size_group_add_widget (group, widget);
 
-	widget = glade_xml_get_widget (parent->xml, "eap_peap_inner_auth_combo");
+	widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "eap_peap_inner_auth_combo"));
 	g_assert (widget);
 
 	model = gtk_combo_box_get_model (GTK_COMBO_BOX (widget));
@@ -132,13 +131,13 @@ fill_connection (EAPMethod *parent, NMConnection *connection)
 
 	nm_setting_802_1x_add_eap_method (s_8021x, "peap");
 
-	widget = glade_xml_get_widget (parent->xml, "eap_peap_anon_identity_entry");
+	widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "eap_peap_anon_identity_entry"));
 	g_assert (widget);
 	text = gtk_entry_get_text (GTK_ENTRY (widget));
 	if (text && strlen (text))
 		g_object_set (s_8021x, NM_SETTING_802_1X_ANONYMOUS_IDENTITY, text, NULL);
 
-	widget = glade_xml_get_widget (parent->xml, "eap_peap_ca_cert_button");
+	widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "eap_peap_ca_cert_button"));
 	g_assert (widget);
 	filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (widget));
 	if (!nm_setting_802_1x_set_ca_cert (s_8021x, filename, NM_SETTING_802_1X_CK_SCHEME_PATH, &format, &error)) {
@@ -150,7 +149,7 @@ fill_connection (EAPMethod *parent, NMConnection *connection)
 	                             FALSE,
 	                             eap_method_get_ignore_ca_cert (parent));
 
-	widget = glade_xml_get_widget (parent->xml, "eap_peap_version_combo");
+	widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "eap_peap_version_combo"));
 	peapver_active = gtk_combo_box_get_active (GTK_COMBO_BOX (widget));
 	switch (peapver_active) {
 	case 1:  /* PEAP v0 */
@@ -164,7 +163,7 @@ fill_connection (EAPMethod *parent, NMConnection *connection)
 		break;
 	}
 
-	widget = glade_xml_get_widget (parent->xml, "eap_peap_inner_auth_combo");
+	widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "eap_peap_inner_auth_combo"));
 	model = gtk_combo_box_get_model (GTK_COMBO_BOX (widget));
 	gtk_combo_box_get_active_iter (GTK_COMBO_BOX (widget), &iter);
 	gtk_tree_model_get (model, &iter, I_METHOD_COLUMN, &eap, -1);
@@ -185,7 +184,7 @@ inner_auth_combo_changed_cb (GtkWidget *combo, gpointer user_data)
 	GtkTreeIter iter;
 	GtkWidget *eap_widget;
 
-	vbox = glade_xml_get_widget (parent->xml, "eap_peap_inner_auth_vbox");
+	vbox = GTK_WIDGET (gtk_builder_get_object (parent->builder, "eap_peap_inner_auth_vbox"));
 	g_assert (vbox);
 
 	/* Remove any previous wireless security widgets */
@@ -200,6 +199,7 @@ inner_auth_combo_changed_cb (GtkWidget *combo, gpointer user_data)
 
 	eap_widget = eap_method_get_widget (eap);
 	g_assert (eap_widget);
+	gtk_widget_unparent (eap_widget);
 
 	if (method->size_group)
 		eap_method_add_to_size_group (eap, method->size_group);
@@ -212,11 +212,11 @@ inner_auth_combo_changed_cb (GtkWidget *combo, gpointer user_data)
 
 static GtkWidget *
 inner_auth_combo_init (EAPMethodPEAP *method,
-                       const char *glade_file,
+                       const char *ui_file,
                        NMConnection *connection,
                        NMSetting8021x *s_8021x)
 {
-	GladeXML *xml = EAP_METHOD (method)->xml;
+	GtkBuilder *builder = EAP_METHOD (method)->builder;
 	GtkWidget *combo;
 	GtkListStore *auth_model;
 	GtkTreeIter iter;
@@ -235,7 +235,7 @@ inner_auth_combo_init (EAPMethodPEAP *method,
 			phase2_auth = nm_setting_802_1x_get_phase2_autheap (s_8021x);
 	}
 
-	em_mschap_v2 = eap_method_simple_new (glade_file,
+	em_mschap_v2 = eap_method_simple_new (ui_file,
 	                                      method->sec_parent,
 	                                      connection,
 	                                      EAP_METHOD_SIMPLE_TYPE_MSCHAP_V2,
@@ -251,7 +251,7 @@ inner_auth_combo_init (EAPMethodPEAP *method,
 	if (phase2_auth && !strcasecmp (phase2_auth, "mschapv2"))
 		active = 0;
 
-	em_md5 = eap_method_simple_new (glade_file,
+	em_md5 = eap_method_simple_new (ui_file,
 	                                 method->sec_parent,
 	                                 connection,
 	                                 EAP_METHOD_SIMPLE_TYPE_MD5,
@@ -267,7 +267,7 @@ inner_auth_combo_init (EAPMethodPEAP *method,
 	if (phase2_auth && !strcasecmp (phase2_auth, "md5"))
 		active = 1;
 
-	em_gtc = eap_method_simple_new (glade_file,
+	em_gtc = eap_method_simple_new (ui_file,
 	                                method->sec_parent,
 	                                connection,
 	                                EAP_METHOD_SIMPLE_TYPE_GTC,
@@ -283,7 +283,7 @@ inner_auth_combo_init (EAPMethodPEAP *method,
 	if (phase2_auth && !strcasecmp (phase2_auth, "gtc"))
 		active = 2;
 
-	combo = glade_xml_get_widget (xml, "eap_peap_inner_auth_combo");
+	combo = GTK_WIDGET (gtk_builder_get_object (builder, "eap_peap_inner_auth_combo"));
 	g_assert (combo);
 
 	gtk_combo_box_set_model (GTK_COMBO_BOX (combo), GTK_TREE_MODEL (auth_model));
@@ -306,33 +306,36 @@ update_secrets (EAPMethod *parent, NMConnection *connection)
 }
 
 EAPMethodPEAP *
-eap_method_peap_new (const char *glade_file,
+eap_method_peap_new (const char *ui_file,
                      WirelessSecurity *parent,
                      NMConnection *connection,
                      gboolean is_editor)
 {
 	EAPMethodPEAP *method;
 	GtkWidget *widget;
-	GladeXML *xml;
+	GtkBuilder *builder;
 	GtkFileFilter *filter;
 	NMSetting8021x *s_8021x = NULL;
 	const char *filename;
+	GError *error = NULL;
 
-	g_return_val_if_fail (glade_file != NULL, NULL);
+	g_return_val_if_fail (ui_file != NULL, NULL);
 
-	xml = glade_xml_new (glade_file, "eap_peap_notebook", NULL);
-	if (xml == NULL) {
-		g_warning ("Couldn't get eap_peap_widget from glade xml");
+	builder = gtk_builder_new ();
+	if (!gtk_builder_add_from_file (builder, ui_file, &error))
+	{
+		g_warning ("Couldn't load builder file: %s", error->message);
+		g_error_free (error);
 		return NULL;
 	}
 
-	widget = glade_xml_get_widget (xml, "eap_peap_notebook");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "eap_peap_notebook"));
 	g_assert (widget);
 	g_object_ref_sink (widget);
 
 	method = g_slice_new0 (EAPMethodPEAP);
 	if (!method) {
-		g_object_unref (xml);
+		g_object_unref (builder);
 		g_object_unref (widget);
 		return NULL;
 	}
@@ -343,12 +346,12 @@ eap_method_peap_new (const char *glade_file,
 	                 fill_connection,
 	                 update_secrets,
 	                 destroy,
-	                 xml,
+	                 builder,
 	                 widget,
 	                 "eap_peap_anon_identity_entry");
 
 	eap_method_nag_init (EAP_METHOD (method),
-	                     glade_file,
+	                     ui_file,
 	                     "eap_peap_ca_cert_button",
 	                     connection,
 	                     FALSE);
@@ -359,7 +362,7 @@ eap_method_peap_new (const char *glade_file,
 	if (connection)
 		s_8021x = NM_SETTING_802_1X (nm_connection_get_setting (connection, NM_TYPE_SETTING_802_1X));
 
-	widget = glade_xml_get_widget (xml, "eap_peap_ca_cert_button");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "eap_peap_ca_cert_button"));
 	g_assert (widget);
 	gtk_file_chooser_set_local_only (GTK_FILE_CHOOSER (widget), TRUE);
 	gtk_file_chooser_button_set_title (GTK_FILE_CHOOSER_BUTTON (widget),
@@ -377,10 +380,10 @@ eap_method_peap_new (const char *glade_file,
 		}
 	}
 
-	widget = inner_auth_combo_init (method, glade_file, connection, s_8021x);
+	widget = inner_auth_combo_init (method, ui_file, connection, s_8021x);
 	inner_auth_combo_changed_cb (widget, (gpointer) method);
 
-	widget = glade_xml_get_widget (xml, "eap_peap_version_combo");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "eap_peap_version_combo"));
 	g_assert (widget);
 	gtk_combo_box_set_active (GTK_COMBO_BOX (widget), 0);
 	if (s_8021x) {
@@ -399,7 +402,7 @@ eap_method_peap_new (const char *glade_file,
 	                  (GCallback) wireless_security_changed_cb,
 	                  parent);
 
-	widget = glade_xml_get_widget (xml, "eap_peap_anon_identity_entry");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "eap_peap_anon_identity_entry"));
 	if (s_8021x && nm_setting_802_1x_get_anonymous_identity (s_8021x))
 		gtk_entry_set_text (GTK_ENTRY (widget), nm_setting_802_1x_get_anonymous_identity (s_8021x));
 	g_signal_connect (G_OBJECT (widget), "changed",
diff --git a/src/wireless-security/eap-method-peap.h b/src/wireless-security/eap-method-peap.h
index f61097e..1967ccc 100644
--- a/src/wireless-security/eap-method-peap.h
+++ b/src/wireless-security/eap-method-peap.h
@@ -33,7 +33,7 @@ typedef struct {
 	gboolean is_editor;
 } EAPMethodPEAP;
 
-EAPMethodPEAP * eap_method_peap_new (const char *glade_file,
+EAPMethodPEAP * eap_method_peap_new (const char *ui_file,
                                      WirelessSecurity *parent,
                                      NMConnection *connection,
                                      gboolean is_editor);
diff --git a/src/wireless-security/eap-method-simple.c b/src/wireless-security/eap-method-simple.c
index 152a78d..98e8644 100644
--- a/src/wireless-security/eap-method-simple.c
+++ b/src/wireless-security/eap-method-simple.c
@@ -20,7 +20,6 @@
  * (C) Copyright 2007 - 2009 Red Hat, Inc.
  */
 
-#include <glade/glade.h>
 #include <ctype.h>
 #include <string.h>
 #include <nm-setting-8021x.h>
@@ -37,7 +36,7 @@ show_toggled_cb (GtkCheckButton *button, EAPMethod *method)
 	GtkWidget *widget;
 	gboolean visible;
 
-	widget = glade_xml_get_widget (method->xml, "eap_simple_password_entry");
+	widget = GTK_WIDGET (gtk_builder_get_object (method->builder, "eap_simple_password_entry"));
 	g_assert (widget);
 
 	visible = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (button));
@@ -58,19 +57,19 @@ validate (EAPMethod *parent)
 	GtkWidget *widget;
 	const char *text;
 
-	widget = glade_xml_get_widget (parent->xml, "eap_simple_username_entry");
+	widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "eap_simple_username_entry"));
 	g_assert (widget);
 	text = gtk_entry_get_text (GTK_ENTRY (widget));
 	if (!text || !strlen (text))
 		return FALSE;
 
 	/* Check if the password should always be requested */
-	widget = glade_xml_get_widget (parent->xml, "eap_password_always_ask");
+	widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "eap_password_always_ask"));
 	g_assert (widget);
 	if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)))
 		return TRUE;
 
-	widget = glade_xml_get_widget (parent->xml, "eap_simple_password_entry");
+	widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "eap_simple_password_entry"));
 	g_assert (widget);
 	text = gtk_entry_get_text (GTK_ENTRY (widget));
 	if (!text || !strlen (text))
@@ -84,11 +83,11 @@ add_to_size_group (EAPMethod *parent, GtkSizeGroup *group)
 {
 	GtkWidget *widget;
 
-	widget = glade_xml_get_widget (parent->xml, "eap_simple_username_label");
+	widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "eap_simple_username_label"));
 	g_assert (widget);
 	gtk_size_group_add_widget (group, widget);
 
-	widget = glade_xml_get_widget (parent->xml, "eap_simple_password_label");
+	widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "eap_simple_password_label"));
 	g_assert (widget);
 	gtk_size_group_add_widget (group, widget);
 }
@@ -129,12 +128,12 @@ fill_connection (EAPMethod *parent, NMConnection *connection)
 			break;
 	}
 
-	widget = glade_xml_get_widget (parent->xml, "eap_simple_username_entry");
+	widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "eap_simple_username_entry"));
 	g_assert (widget);
 	g_object_set (s_8021x, NM_SETTING_802_1X_IDENTITY, gtk_entry_get_text (GTK_ENTRY (widget)), NULL);
 
 	/* Save the password always ask setting */
-	widget = glade_xml_get_widget (parent->xml, "eap_password_always_ask");
+	widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "eap_password_always_ask"));
 	g_assert (widget);
 	always_ask = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget));
 
@@ -148,7 +147,7 @@ fill_connection (EAPMethod *parent, NMConnection *connection)
 	 * user checked "Always Ask".
 	 */
 	if (method->is_editor == FALSE || always_ask == FALSE) {
-		widget = glade_xml_get_widget (parent->xml, "eap_simple_password_entry");
+		widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "eap_simple_password_entry"));
 		g_assert (widget);
 		g_object_set (s_8021x, NM_SETTING_802_1X_PASSWORD, gtk_entry_get_text (GTK_ENTRY (widget)), NULL);
 	}
@@ -158,7 +157,7 @@ static void
 update_secrets (EAPMethod *parent, NMConnection *connection)
 {
 	helper_fill_secret_entry (connection,
-	                          parent->xml,
+	                          parent->builder,
 	                          "eap_simple_password_entry",
 	                          NM_TYPE_SETTING_802_1X,
 	                          (HelperSecretFunc) nm_setting_802_1x_get_password);
@@ -174,10 +173,10 @@ password_always_ask_changed (GtkButton *button, EAPMethodSimple *method)
 
 	always_ask = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (button));
 
-	password_entry = glade_xml_get_widget (parent->xml, "eap_simple_password_entry");
+	password_entry = GTK_WIDGET (gtk_builder_get_object (parent->builder, "eap_simple_password_entry"));
 	g_assert (password_entry);
 
-	show_checkbox = glade_xml_get_widget (parent->xml, "show_checkbutton");
+	show_checkbox = GTK_WIDGET (gtk_builder_get_object (parent->builder, "show_checkbutton_eapsimple"));
 	g_assert (show_checkbox);
 
 	if (always_ask) {
@@ -190,7 +189,7 @@ password_always_ask_changed (GtkButton *button, EAPMethodSimple *method)
 }
 
 EAPMethodSimple *
-eap_method_simple_new (const char *glade_file,
+eap_method_simple_new (const char *ui_file,
                        WirelessSecurity *parent,
                        NMConnection *connection,
                        EAPMethodSimpleType type,
@@ -198,24 +197,27 @@ eap_method_simple_new (const char *glade_file,
 {
 	EAPMethodSimple *method;
 	GtkWidget *widget;
-	GladeXML *xml;
+	GtkBuilder *builder;
 	gboolean always_ask = FALSE;
+	GError *error = NULL;
 
-	g_return_val_if_fail (glade_file != NULL, NULL);
+	g_return_val_if_fail (ui_file != NULL, NULL);
 
-	xml = glade_xml_new (glade_file, "eap_simple_notebook", NULL);
-	if (xml == NULL) {
-		g_warning ("Couldn't get eap_simple_widget from glade xml");
+	builder = gtk_builder_new ();
+	if (!gtk_builder_add_from_file (builder, ui_file, &error))
+	{
+		g_warning ("Couldn't load builder file: %s", error->message);
+		g_error_free (error);
 		return NULL;
 	}
 
-	widget = glade_xml_get_widget (xml, "eap_simple_notebook");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "eap_simple_notebook"));
 	g_assert (widget);
 	g_object_ref_sink (widget);
 
 	method = g_slice_new0 (EAPMethodSimple);
 	if (!method) {
-		g_object_unref (xml);
+		g_object_unref (builder);
 		g_object_unref (widget);
 		return NULL;
 	}
@@ -226,14 +228,14 @@ eap_method_simple_new (const char *glade_file,
 	                 fill_connection,
 	                 update_secrets,
 	                 destroy,
-	                 xml,
+	                 builder,
 	                 widget,
 	                 "eap_simple_username_entry");
 
 	method->type = type;
 	method->is_editor = is_editor;
 
-	widget = glade_xml_get_widget (xml, "eap_simple_username_entry");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "eap_simple_username_entry"));
 	g_assert (widget);
 	g_signal_connect (G_OBJECT (widget), "changed",
 	                  (GCallback) wireless_security_changed_cb,
@@ -246,13 +248,13 @@ eap_method_simple_new (const char *glade_file,
 			gtk_entry_set_text (GTK_ENTRY (widget), nm_setting_802_1x_get_identity (s_8021x));
 	}
 
-	widget = glade_xml_get_widget (xml, "eap_simple_password_entry");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "eap_simple_password_entry"));
 	g_assert (widget);
 	g_signal_connect (G_OBJECT (widget), "changed",
 	                  (GCallback) wireless_security_changed_cb,
 	                  parent);
 
-	widget = glade_xml_get_widget (xml, "eap_password_always_ask");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "eap_password_always_ask"));
 	g_assert (widget);
 	g_signal_connect (G_OBJECT (widget), "toggled",
 	                  (GCallback) wireless_security_changed_cb,
@@ -286,7 +288,7 @@ eap_method_simple_new (const char *glade_file,
 	if (connection && !always_ask)
 		update_secrets (EAP_METHOD (method), connection);
 
-	widget = glade_xml_get_widget (xml, "show_checkbutton");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "show_checkbutton_eapsimple"));
 	g_assert (widget);
 	g_signal_connect (G_OBJECT (widget), "toggled",
 	                  (GCallback) show_toggled_cb,
diff --git a/src/wireless-security/eap-method-simple.h b/src/wireless-security/eap-method-simple.h
index 7395a4d..ac84ecd 100644
--- a/src/wireless-security/eap-method-simple.h
+++ b/src/wireless-security/eap-method-simple.h
@@ -41,7 +41,7 @@ typedef struct {
 	gboolean is_editor;
 } EAPMethodSimple;
 
-EAPMethodSimple * eap_method_simple_new (const char *glade_file,
+EAPMethodSimple * eap_method_simple_new (const char *ui_file,
                                          WirelessSecurity *parent,
                                          NMConnection *connection,
                                          EAPMethodSimpleType type,
diff --git a/src/wireless-security/eap-method-tls.c b/src/wireless-security/eap-method-tls.c
index c0950b9..d2bcec3 100644
--- a/src/wireless-security/eap-method-tls.c
+++ b/src/wireless-security/eap-method-tls.c
@@ -20,7 +20,6 @@
  * (C) Copyright 2007 - 2009 Red Hat, Inc.
  */
 
-#include <glade/glade.h>
 #include <glib/gi18n.h>
 #include <ctype.h>
 #include <string.h>
@@ -40,7 +39,7 @@ show_toggled_cb (GtkCheckButton *button, EAPMethod *method)
 	GtkWidget *widget;
 	gboolean visible;
 
-	widget = glade_xml_get_widget (method->xml, "eap_tls_private_key_password_entry");
+	widget = GTK_WIDGET (gtk_builder_get_object (method->builder, "eap_tls_private_key_password_entry"));
 	g_assert (widget);
 
 	visible = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (button));
@@ -62,22 +61,22 @@ validate (EAPMethod *parent)
 	GtkWidget *widget;
 	const char *password, *identity;
 
-	widget = glade_xml_get_widget (parent->xml, "eap_tls_identity_entry");
+	widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "eap_tls_identity_entry"));
 	g_assert (widget);
 	identity = gtk_entry_get_text (GTK_ENTRY (widget));
 	if (!identity || !strlen (identity))
 		return FALSE;
 
-	if (!eap_method_validate_filepicker (parent->xml, "eap_tls_ca_cert_button", TYPE_CA_CERT, NULL, NULL))
+	if (!eap_method_validate_filepicker (parent->builder, "eap_tls_ca_cert_button", TYPE_CA_CERT, NULL, NULL))
 		return FALSE;
 
-	widget = glade_xml_get_widget (parent->xml, "eap_tls_private_key_password_entry");
+	widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "eap_tls_private_key_password_entry"));
 	g_assert (widget);
 	password = gtk_entry_get_text (GTK_ENTRY (widget));
 	if (!password || !strlen (password))
 		return FALSE;
 
-	if (!eap_method_validate_filepicker (parent->xml,
+	if (!eap_method_validate_filepicker (parent->builder,
 	                                     "eap_tls_private_key_button",
 	                                     TYPE_PRIVATE_KEY,
 	                                     password,
@@ -85,7 +84,7 @@ validate (EAPMethod *parent)
 		return FALSE;
 
 	if (format != NM_SETTING_802_1X_CK_FORMAT_PKCS12) {
-		if (!eap_method_validate_filepicker (parent->xml, "eap_tls_user_cert_button", TYPE_CLIENT_CERT, NULL, NULL))
+		if (!eap_method_validate_filepicker (parent->builder, "eap_tls_user_cert_button", TYPE_CLIENT_CERT, NULL, NULL))
 			return FALSE;
 	}
 
@@ -97,23 +96,23 @@ add_to_size_group (EAPMethod *parent, GtkSizeGroup *group)
 {
 	GtkWidget *widget;
 
-	widget = glade_xml_get_widget (parent->xml, "eap_tls_identity_label");
+	widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "eap_tls_identity_label"));
 	g_assert (widget);
 	gtk_size_group_add_widget (group, widget);
 
-	widget = glade_xml_get_widget (parent->xml, "eap_tls_user_cert_label");
+	widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "eap_tls_user_cert_label"));
 	g_assert (widget);
 	gtk_size_group_add_widget (group, widget);
 
-	widget = glade_xml_get_widget (parent->xml, "eap_tls_ca_cert_label");
+	widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "eap_tls_ca_cert_label"));
 	g_assert (widget);
 	gtk_size_group_add_widget (group, widget);
 
-	widget = glade_xml_get_widget (parent->xml, "eap_tls_private_key_label");
+	widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "eap_tls_private_key_label"));
 	g_assert (widget);
 	gtk_size_group_add_widget (group, widget);
 
-	widget = glade_xml_get_widget (parent->xml, "eap_tls_private_key_password_label");
+	widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "eap_tls_private_key_password_label"));
 	g_assert (widget);
 	gtk_size_group_add_widget (group, widget);
 }
@@ -141,17 +140,17 @@ fill_connection (EAPMethod *parent, NMConnection *connection)
 	else
 		nm_setting_802_1x_add_eap_method (s_8021x, "tls");
 
-	widget = glade_xml_get_widget (parent->xml, "eap_tls_identity_entry");
+	widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "eap_tls_identity_entry"));
 	g_assert (widget);
 	g_object_set (s_8021x, NM_SETTING_802_1X_IDENTITY, gtk_entry_get_text (GTK_ENTRY (widget)), NULL);
 
 	/* TLS private key */
-	widget = glade_xml_get_widget (parent->xml, "eap_tls_private_key_password_entry");
+	widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "eap_tls_private_key_password_entry"));
 	g_assert (widget);
 	password = gtk_entry_get_text (GTK_ENTRY (widget));
 	g_assert (password);
 
-	widget = glade_xml_get_widget (parent->xml, "eap_tls_private_key_button");
+	widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "eap_tls_private_key_button"));
 	g_assert (widget);
 	pk_filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (widget));
 	g_assert (pk_filename);
@@ -174,7 +173,7 @@ fill_connection (EAPMethod *parent, NMConnection *connection)
 		/* If the key is pkcs#12 nm_setting_802_1x_set_private_key() already
 		 * set the client certificate for us.
 		 */
-		widget = glade_xml_get_widget (parent->xml, "eap_tls_user_cert_button");
+		widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "eap_tls_user_cert_button"));
 		g_assert (widget);
 		cc_filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (widget));
 		g_assert (cc_filename);
@@ -195,7 +194,7 @@ fill_connection (EAPMethod *parent, NMConnection *connection)
 	}
 
 	/* TLS CA certificate */
-	widget = glade_xml_get_widget (parent->xml, "eap_tls_ca_cert_button");
+	widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "eap_tls_ca_cert_button"));
 	g_assert (widget);
 	ca_filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (widget));
 
@@ -225,7 +224,7 @@ private_key_picker_helper (EAPMethod *parent, const char *filename, gboolean cha
 	const char *password;
 	GtkWidget *widget;
 
-	widget = glade_xml_get_widget (parent->xml, "eap_tls_private_key_password_entry");
+	widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "eap_tls_private_key_password_entry"));
 	g_assert (widget);
 	password = gtk_entry_get_text (GTK_ENTRY (widget));
 
@@ -234,7 +233,7 @@ private_key_picker_helper (EAPMethod *parent, const char *filename, gboolean cha
 	g_object_unref (setting);
 
 	/* With PKCS#12, the client cert must be the same as the private key */
-	widget = glade_xml_get_widget (parent->xml, "eap_tls_user_cert_button");
+	widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "eap_tls_user_cert_button"));
 	if (cert_format == NM_SETTING_802_1X_CK_FORMAT_PKCS12) {
 		gtk_file_chooser_unselect_all (GTK_FILE_CHOOSER (widget));
 		gtk_widget_set_sensitive (widget, FALSE);
@@ -294,7 +293,7 @@ typedef const char * (*PathFunc) (NMSetting8021x *setting);
 typedef NMSetting8021xCKScheme (*SchemeFunc)  (NMSetting8021x *setting);
 
 static void
-setup_filepicker (GladeXML *xml,
+setup_filepicker (GtkBuilder *builder,
                   const char *name,
                   const char *title,
                   WirelessSecurity *parent,
@@ -309,7 +308,7 @@ setup_filepicker (GladeXML *xml,
 	GtkFileFilter *filter;
 	const char *filename = NULL;
 
-	widget = glade_xml_get_widget (xml, name);
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, name));
 	g_assert (widget);
 	gtk_file_chooser_set_local_only (GTK_FILE_CHOOSER (widget), TRUE);
 	gtk_file_chooser_button_set_title (GTK_FILE_CHOOSER_BUTTON (widget), title);
@@ -371,7 +370,7 @@ update_secrets (EAPMethod *parent, NMConnection *connection)
 	}
 
 	helper_fill_secret_entry (connection,
-	                          parent->xml,
+	                          parent->builder,
 	                          "eap_tls_private_key_password_entry",
 	                          NM_TYPE_SETTING_802_1X,
 	                          password_func);
@@ -381,7 +380,7 @@ update_secrets (EAPMethod *parent, NMConnection *connection)
 	if (s_8021x && (scheme_func (s_8021x) == NM_SETTING_802_1X_CK_SCHEME_PATH)) {
 		filename = path_func (s_8021x);
 		if (filename) {
-			widget = glade_xml_get_widget (parent->xml, "eap_tls_private_key_button");
+			widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "eap_tls_private_key_button"));
 			g_assert (widget);
 			gtk_file_chooser_set_filename (GTK_FILE_CHOOSER (widget), filename);
 		}
@@ -389,31 +388,34 @@ update_secrets (EAPMethod *parent, NMConnection *connection)
 }
 
 EAPMethodTLS *
-eap_method_tls_new (const char *glade_file,
+eap_method_tls_new (const char *ui_file,
                     WirelessSecurity *parent,
                     NMConnection *connection,
                     gboolean phase2)
 {
 	EAPMethodTLS *method;
 	GtkWidget *widget;
-	GladeXML *xml;
+	GtkBuilder *builder;
 	NMSetting8021x *s_8021x = NULL;
+    GError *error = NULL;
 
-	g_return_val_if_fail (glade_file != NULL, NULL);
+	g_return_val_if_fail (ui_file != NULL, NULL);
 
-	xml = glade_xml_new (glade_file, "eap_tls_notebook", NULL);
-	if (xml == NULL) {
-		g_warning ("Couldn't get eap_tls_widget from glade xml");
+	builder = gtk_builder_new ();
+	if (!gtk_builder_add_from_file (builder, ui_file, &error))
+	{
+		g_warning ("Couldn't load builder file: %s", error->message);
+		g_error_free (error);
 		return NULL;
 	}
 
-	widget = glade_xml_get_widget (xml, "eap_tls_notebook");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "eap_tls_notebook"));
 	g_assert (widget);
 	g_object_ref_sink (widget);
 
 	method = g_slice_new0 (EAPMethodTLS);
 	if (!method) {
-		g_object_unref (xml);
+		g_object_unref (builder);
 		g_object_unref (widget);
 		return NULL;
 	}
@@ -424,12 +426,12 @@ eap_method_tls_new (const char *glade_file,
 	                 fill_connection,
 	                 update_secrets,
 	                 destroy,
-	                 xml,
+	                 builder,
 	                 widget,
 	                 "eap_tls_identity_entry");
 
 	eap_method_nag_init (EAP_METHOD (method),
-	                     glade_file,
+	                     ui_file,
 	                     "eap_tls_ca_cert_button",
 	                     connection,
 	                     phase2);
@@ -439,7 +441,7 @@ eap_method_tls_new (const char *glade_file,
 	if (connection)
 		s_8021x = NM_SETTING_802_1X (nm_connection_get_setting (connection, NM_TYPE_SETTING_802_1X));
 
-	widget = glade_xml_get_widget (xml, "eap_tls_identity_entry");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "eap_tls_identity_entry"));
 	g_assert (widget);
 	g_signal_connect (G_OBJECT (widget), "changed",
 	                  (GCallback) wireless_security_changed_cb,
@@ -447,19 +449,19 @@ eap_method_tls_new (const char *glade_file,
 	if (s_8021x && nm_setting_802_1x_get_identity (s_8021x))
 		gtk_entry_set_text (GTK_ENTRY (widget), nm_setting_802_1x_get_identity (s_8021x));
 
-	setup_filepicker (xml, "eap_tls_user_cert_button",
+	setup_filepicker (builder, "eap_tls_user_cert_button",
 	                  _("Choose your personal certificate..."),
 	                  parent, method, s_8021x,
 	                  phase2 ? nm_setting_802_1x_get_phase2_client_cert_scheme : nm_setting_802_1x_get_client_cert_scheme,
 	                  phase2 ? nm_setting_802_1x_get_phase2_client_cert_path : nm_setting_802_1x_get_client_cert_path,
 	                  FALSE, TRUE);
-	setup_filepicker (xml, "eap_tls_ca_cert_button",
+	setup_filepicker (builder, "eap_tls_ca_cert_button",
 	                  _("Choose a Certificate Authority certificate..."),
 	                  parent, method, s_8021x,
 	                  phase2 ? nm_setting_802_1x_get_phase2_ca_cert_scheme : nm_setting_802_1x_get_ca_cert_scheme,
 	                  phase2 ? nm_setting_802_1x_get_phase2_ca_cert_path : nm_setting_802_1x_get_ca_cert_path,
 	                  FALSE, FALSE);
-	setup_filepicker (xml, "eap_tls_private_key_button",
+	setup_filepicker (builder, "eap_tls_private_key_button",
 	                  _("Choose your private key..."),
 	                  parent, method, s_8021x,
 	                  phase2 ? nm_setting_802_1x_get_phase2_private_key_scheme : nm_setting_802_1x_get_private_key_scheme,
@@ -470,13 +472,13 @@ eap_method_tls_new (const char *glade_file,
 	if (connection)
 		update_secrets (EAP_METHOD (method), connection);
 
-	widget = glade_xml_get_widget (xml, "eap_tls_private_key_password_entry");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "eap_tls_private_key_password_entry"));
 	g_assert (widget);
 	g_signal_connect (G_OBJECT (widget), "changed",
 	                  (GCallback) wireless_security_changed_cb,
 	                  parent);
 
-	widget = glade_xml_get_widget (xml, "show_checkbutton");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "show_checkbutton_eaptls"));
 	g_assert (widget);
 	g_signal_connect (G_OBJECT (widget), "toggled",
 	                  (GCallback) show_toggled_cb,
diff --git a/src/wireless-security/eap-method-tls.h b/src/wireless-security/eap-method-tls.h
index 939ae5e..ff1d29e 100644
--- a/src/wireless-security/eap-method-tls.h
+++ b/src/wireless-security/eap-method-tls.h
@@ -31,7 +31,7 @@ typedef struct {
 	gboolean phase2;
 } EAPMethodTLS;
 
-EAPMethodTLS * eap_method_tls_new (const char *glade_file,
+EAPMethodTLS * eap_method_tls_new (const char *ui_file,
                                    WirelessSecurity *parent,
                                    NMConnection *connection,
                                    gboolean phase2);
diff --git a/src/wireless-security/eap-method-ttls.c b/src/wireless-security/eap-method-ttls.c
index 4d9b9bc..f9102d0 100644
--- a/src/wireless-security/eap-method-ttls.c
+++ b/src/wireless-security/eap-method-ttls.c
@@ -21,7 +21,6 @@
  */
 
 #include <glib/gi18n.h>
-#include <glade/glade.h>
 #include <ctype.h>
 #include <string.h>
 
@@ -54,10 +53,10 @@ validate (EAPMethod *parent)
 	EAPMethod *eap = NULL;
 	gboolean valid = FALSE;
 
-	if (!eap_method_validate_filepicker (parent->xml, "eap_ttls_ca_cert_button", TYPE_CA_CERT, NULL, NULL))
+	if (!eap_method_validate_filepicker (parent->builder, "eap_ttls_ca_cert_button", TYPE_CA_CERT, NULL, NULL))
 		return FALSE;
 
-	widget = glade_xml_get_widget (parent->xml, "eap_ttls_inner_auth_combo");
+	widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "eap_ttls_inner_auth_combo"));
 	g_assert (widget);
 
 	model = gtk_combo_box_get_model (GTK_COMBO_BOX (widget));
@@ -82,19 +81,19 @@ add_to_size_group (EAPMethod *parent, GtkSizeGroup *group)
 		g_object_unref (method->size_group);
 	method->size_group = g_object_ref (group);
 
-	widget = glade_xml_get_widget (parent->xml, "eap_ttls_anon_identity_label");
+	widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "eap_ttls_anon_identity_label"));
 	g_assert (widget);
 	gtk_size_group_add_widget (group, widget);
 
-	widget = glade_xml_get_widget (parent->xml, "eap_ttls_ca_cert_label");
+	widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "eap_ttls_ca_cert_label"));
 	g_assert (widget);
 	gtk_size_group_add_widget (group, widget);
 
-	widget = glade_xml_get_widget (parent->xml, "eap_ttls_inner_auth_label");
+	widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "eap_ttls_inner_auth_label"));
 	g_assert (widget);
 	gtk_size_group_add_widget (group, widget);
 
-	widget = glade_xml_get_widget (parent->xml, "eap_ttls_inner_auth_combo");
+	widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "eap_ttls_inner_auth_combo"));
 	g_assert (widget);
 
 	model = gtk_combo_box_get_model (GTK_COMBO_BOX (widget));
@@ -127,13 +126,13 @@ fill_connection (EAPMethod *parent, NMConnection *connection)
 
 	nm_setting_802_1x_add_eap_method (s_8021x, "ttls");
 
-	widget = glade_xml_get_widget (parent->xml, "eap_ttls_anon_identity_entry");
+	widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "eap_ttls_anon_identity_entry"));
 	g_assert (widget);
 	text = gtk_entry_get_text (GTK_ENTRY (widget));
 	if (text && strlen (text))
 		g_object_set (s_8021x, NM_SETTING_802_1X_ANONYMOUS_IDENTITY, text, NULL);
 
-	widget = glade_xml_get_widget (parent->xml, "eap_ttls_ca_cert_button");
+	widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "eap_ttls_ca_cert_button"));
 	g_assert (widget);
 	filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (widget));
 	if (!nm_setting_802_1x_set_ca_cert (s_8021x, filename, NM_SETTING_802_1X_CK_SCHEME_PATH, &format, &error)) {
@@ -145,7 +144,7 @@ fill_connection (EAPMethod *parent, NMConnection *connection)
 	                             FALSE,
 	                             eap_method_get_ignore_ca_cert (parent));
 
-	widget = glade_xml_get_widget (parent->xml, "eap_ttls_inner_auth_combo");
+	widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "eap_ttls_inner_auth_combo"));
 	model = gtk_combo_box_get_model (GTK_COMBO_BOX (widget));
 	gtk_combo_box_get_active_iter (GTK_COMBO_BOX (widget), &iter);
 	gtk_tree_model_get (model, &iter, I_METHOD_COLUMN, &eap, -1);
@@ -167,7 +166,7 @@ inner_auth_combo_changed_cb (GtkWidget *combo, gpointer user_data)
 	GtkTreeIter iter;
 	GtkWidget *eap_widget;
 
-	vbox = glade_xml_get_widget (parent->xml, "eap_ttls_inner_auth_vbox");
+	vbox = GTK_WIDGET (gtk_builder_get_object (parent->builder, "eap_ttls_inner_auth_vbox"));
 	g_assert (vbox);
 
 	/* Remove any previous wireless security widgets */
@@ -182,6 +181,7 @@ inner_auth_combo_changed_cb (GtkWidget *combo, gpointer user_data)
 
 	eap_widget = eap_method_get_widget (eap);
 	g_assert (eap_widget);
+	gtk_widget_unparent (eap_widget);
 
 	if (method->size_group)
 		eap_method_add_to_size_group (eap, method->size_group);
@@ -194,11 +194,11 @@ inner_auth_combo_changed_cb (GtkWidget *combo, gpointer user_data)
 
 static GtkWidget *
 inner_auth_combo_init (EAPMethodTTLS *method,
-                       const char *glade_file,
+                       const char *ui_file,
                        NMConnection *connection,
                        NMSetting8021x *s_8021x)
 {
-	GladeXML *xml = EAP_METHOD (method)->xml;
+	GtkBuilder *builder = EAP_METHOD (method)->builder;
 	GtkWidget *combo;
 	GtkListStore *auth_model;
 	GtkTreeIter iter;
@@ -218,7 +218,7 @@ inner_auth_combo_init (EAPMethodTTLS *method,
 			phase2_auth = nm_setting_802_1x_get_phase2_autheap (s_8021x);
 	}
 
-	em_pap = eap_method_simple_new (glade_file,
+	em_pap = eap_method_simple_new (ui_file,
 	                                method->sec_parent,
 	                                connection,
 	                                EAP_METHOD_SIMPLE_TYPE_PAP,
@@ -234,7 +234,7 @@ inner_auth_combo_init (EAPMethodTTLS *method,
 	if (phase2_auth && !strcasecmp (phase2_auth, "pap"))
 		active = 0;
 
-	em_mschap = eap_method_simple_new (glade_file,
+	em_mschap = eap_method_simple_new (ui_file,
 	                                   method->sec_parent,
 	                                   connection,
 	                                   EAP_METHOD_SIMPLE_TYPE_MSCHAP,
@@ -250,7 +250,7 @@ inner_auth_combo_init (EAPMethodTTLS *method,
 	if (phase2_auth && !strcasecmp (phase2_auth, "mschap"))
 		active = 1;
 
-	em_mschap_v2 = eap_method_simple_new (glade_file,
+	em_mschap_v2 = eap_method_simple_new (ui_file,
 	                                      method->sec_parent,
 	                                      connection,
 	                                      EAP_METHOD_SIMPLE_TYPE_MSCHAP_V2,
@@ -266,7 +266,7 @@ inner_auth_combo_init (EAPMethodTTLS *method,
 	if (phase2_auth && !strcasecmp (phase2_auth, "mschapv2"))
 		active = 2;
 
-	em_chap = eap_method_simple_new (glade_file,
+	em_chap = eap_method_simple_new (ui_file,
 	                                 method->sec_parent,
 	                                 connection,
 	                                 EAP_METHOD_SIMPLE_TYPE_CHAP,
@@ -282,7 +282,7 @@ inner_auth_combo_init (EAPMethodTTLS *method,
 	if (phase2_auth && !strcasecmp (phase2_auth, "chap"))
 		active = 3;
 
-	combo = glade_xml_get_widget (xml, "eap_ttls_inner_auth_combo");
+	combo = GTK_WIDGET (gtk_builder_get_object (builder, "eap_ttls_inner_auth_combo"));
 	g_assert (combo);
 
 	gtk_combo_box_set_model (GTK_COMBO_BOX (combo), GTK_TREE_MODEL (auth_model));
@@ -305,33 +305,36 @@ update_secrets (EAPMethod *parent, NMConnection *connection)
 }
 
 EAPMethodTTLS *
-eap_method_ttls_new (const char *glade_file,
+eap_method_ttls_new (const char *ui_file,
                      WirelessSecurity *parent,
                      NMConnection *connection,
                      gboolean is_editor)
 {
 	EAPMethodTTLS *method;
 	GtkWidget *widget;
-	GladeXML *xml;
+	GtkBuilder *builder;
 	GtkFileFilter *filter;
 	NMSetting8021x *s_8021x = NULL;
 	const char *filename;
+    GError *error = NULL;
 
-	g_return_val_if_fail (glade_file != NULL, NULL);
+	g_return_val_if_fail (ui_file != NULL, NULL);
 
-	xml = glade_xml_new (glade_file, "eap_ttls_notebook", NULL);
-	if (xml == NULL) {
-		g_warning ("Couldn't get eap_ttls_widget from glade xml");
+	builder = gtk_builder_new ();
+	if (!gtk_builder_add_from_file (builder, ui_file, &error))
+	{
+		g_warning ("Couldn't load builder file: %s", error->message);
+		g_error_free (error);
 		return NULL;
 	}
 
-	widget = glade_xml_get_widget (xml, "eap_ttls_notebook");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "eap_ttls_notebook"));
 	g_assert (widget);
 	g_object_ref_sink (widget);
 
 	method = g_slice_new0 (EAPMethodTTLS);
 	if (!method) {
-		g_object_unref (xml);
+		g_object_unref (builder);
 		g_object_unref (widget);
 		return NULL;
 	}
@@ -342,12 +345,12 @@ eap_method_ttls_new (const char *glade_file,
 	                 fill_connection,
 	                 update_secrets,
 	                 destroy,
-	                 xml,
+	                 builder,
 	                 widget,
 	                 "eap_ttls_anon_identity_entry");
 
 	eap_method_nag_init (EAP_METHOD (method),
-	                     glade_file,
+	                     ui_file,
 	                     "eap_ttls_ca_cert_button",
 	                     connection,
 	                     FALSE);
@@ -358,7 +361,7 @@ eap_method_ttls_new (const char *glade_file,
 	if (connection)
 		s_8021x = NM_SETTING_802_1X (nm_connection_get_setting (connection, NM_TYPE_SETTING_802_1X));
 
-	widget = glade_xml_get_widget (xml, "eap_ttls_ca_cert_button");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "eap_ttls_ca_cert_button"));
 	g_assert (widget);
 	gtk_file_chooser_set_local_only (GTK_FILE_CHOOSER (widget), TRUE);
 	gtk_file_chooser_button_set_title (GTK_FILE_CHOOSER_BUTTON (widget),
@@ -376,14 +379,14 @@ eap_method_ttls_new (const char *glade_file,
 		}
 	}
 
-	widget = glade_xml_get_widget (xml, "eap_ttls_anon_identity_entry");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "eap_ttls_anon_identity_entry"));
 	if (s_8021x && nm_setting_802_1x_get_anonymous_identity (s_8021x))
 		gtk_entry_set_text (GTK_ENTRY (widget), nm_setting_802_1x_get_anonymous_identity (s_8021x));
 	g_signal_connect (G_OBJECT (widget), "changed",
 	                  (GCallback) wireless_security_changed_cb,
 	                  parent);
 
-	widget = inner_auth_combo_init (method, glade_file, connection, s_8021x);
+	widget = inner_auth_combo_init (method, ui_file, connection, s_8021x);
 	inner_auth_combo_changed_cb (widget, (gpointer) method);
 
 	return method;
diff --git a/src/wireless-security/eap-method-ttls.h b/src/wireless-security/eap-method-ttls.h
index 3d3dec9..f4e70fd 100644
--- a/src/wireless-security/eap-method-ttls.h
+++ b/src/wireless-security/eap-method-ttls.h
@@ -33,7 +33,7 @@ typedef struct {
 	gboolean is_editor;
 } EAPMethodTTLS;
 
-EAPMethodTTLS * eap_method_ttls_new (const char *glade_file,
+EAPMethodTTLS * eap_method_ttls_new (const char *ui_file,
                                      WirelessSecurity *parent,
                                      NMConnection *connection,
                                      gboolean is_editor);
diff --git a/src/wireless-security/eap-method.c b/src/wireless-security/eap-method.c
index 784bad5..86e658e 100644
--- a/src/wireless-security/eap-method.c
+++ b/src/wireless-security/eap-method.c
@@ -124,7 +124,7 @@ nag_dialog_response_cb (GtkDialog *nag_dialog,
 
 	if (response == GTK_RESPONSE_NO) {
 		/* Grab the value of the "don't bother me" checkbox */
-		widget = glade_xml_get_widget (method->nag_dialog_xml, "ignore_checkbox");
+		widget = GTK_WIDGET (gtk_builder_get_object (method->nag_dialog_ui, "ignore_checkbox"));
 		g_assert (widget);
 
 		method->ignore_ca_cert = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget));
@@ -159,12 +159,12 @@ eap_method_nag_user (EAPMethod *method)
 		return NULL;
 
 	/* Checkbox should be unchecked each time dialog comes up */
-	widget = glade_xml_get_widget (method->nag_dialog_xml, "ignore_checkbox");
+	widget = GTK_WIDGET (gtk_builder_get_object (method->nag_dialog_ui, "ignore_checkbox"));
 	g_assert (widget);
 	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), FALSE);
 
 	/* Nag the user if the CA Cert is blank, since it's a security risk. */
-	widget = glade_xml_get_widget (method->xml, method->ca_cert_chooser);
+	widget = GTK_WIDGET (gtk_builder_get_object (method->builder, method->ca_cert_chooser));
 	g_assert (widget);
 	filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (widget));
 	if (filename != NULL) {
@@ -178,7 +178,7 @@ eap_method_nag_user (EAPMethod *method)
 
 gboolean
 eap_method_nag_init (EAPMethod *method,
-                     const char *glade_file,
+                     const char *ui_file,
                      const char *ca_cert_chooser,
                      NMConnection *connection,
                      gboolean phase2)
@@ -186,14 +186,17 @@ eap_method_nag_init (EAPMethod *method,
 	GtkWidget *dialog, *widget;
 	char *text;
 	NagDialogResponseInfo *info;
+	GError *error = NULL;
 
 	g_return_val_if_fail (method != NULL, FALSE);
-	g_return_val_if_fail (glade_file != NULL, FALSE);
+	g_return_val_if_fail (ui_file != NULL, FALSE);
 	g_return_val_if_fail (ca_cert_chooser != NULL, FALSE);
 
-	method->nag_dialog_xml = glade_xml_new (glade_file, "nag_user_dialog", NULL);
-	if (method->nag_dialog_xml == NULL) {
-		g_warning ("Couldn't get nag_user_dialog from glade xml");
+	method->nag_dialog_ui = gtk_builder_new ();
+	if (!gtk_builder_add_from_file (method->nag_dialog_ui, ui_file, &error))
+	{
+		g_warning ("Couldn't load builder file: %s", error->message);
+		g_error_free (error);
 		return FALSE;
 	}
 
@@ -214,13 +217,13 @@ eap_method_nag_init (EAPMethod *method,
 	info->method = method;
 	info->connection = connection;
 
-	dialog = glade_xml_get_widget (method->nag_dialog_xml, "nag_user_dialog");
+	dialog = GTK_WIDGET (gtk_builder_get_object (method->nag_dialog_ui, "nag_user_dialog"));
 	g_assert (dialog);
 	g_signal_connect (dialog, "response", G_CALLBACK (nag_dialog_response_cb), info);
 	g_signal_connect (dialog, "delete-event", G_CALLBACK (nag_dialog_delete_event_cb), info);
 	g_object_weak_ref (G_OBJECT (dialog), nag_dialog_destroyed, info);
 
-	widget = glade_xml_get_widget (method->nag_dialog_xml, "content_label");
+	widget = GTK_WIDGET (gtk_builder_get_object (method->nag_dialog_ui, "content_label"));
 	g_assert (widget);
 
 	text = g_strdup_printf ("<span weight=\"bold\" size=\"larger\">%s</span>\n\n%s",
@@ -229,11 +232,11 @@ eap_method_nag_init (EAPMethod *method,
 	gtk_label_set_markup (GTK_LABEL (widget), text);
 	g_free (text);
 
-	widget = glade_xml_get_widget (method->nag_dialog_xml, "ignore_button");
+	widget = GTK_WIDGET (gtk_builder_get_object (method->nag_dialog_ui, "ignore_button"));
 	gtk_button_set_label (GTK_BUTTON (widget), _("Ignore"));
 	g_assert (widget);
 
-	widget = glade_xml_get_widget (method->nag_dialog_xml, "change_button");
+	widget = GTK_WIDGET (gtk_builder_get_object (method->nag_dialog_ui, "change_button"));
 	gtk_button_set_label (GTK_BUTTON (widget), _("Choose CA Certificate"));
 	g_assert (widget);
 
@@ -263,7 +266,7 @@ eap_method_phase2_update_secrets_helper (EAPMethod *method,
 	g_return_if_fail (connection != NULL);
 	g_return_if_fail (combo_name != NULL);
 
-	combo = glade_xml_get_widget (method->xml, combo_name);
+	combo = GTK_WIDGET (gtk_builder_get_object (method->builder, combo_name));
 	g_assert (combo);
 
 	/* Let each EAP phase2 method try to update its secrets */
@@ -288,7 +291,7 @@ eap_method_init (EAPMethod *method,
                  EMFillConnectionFunc fill_connection,
                  EMUpdateSecretsFunc update_secrets,
                  EMDestroyFunc destroy,
-                 GladeXML *xml,
+                 GtkBuilder *builder,
                  GtkWidget *ui_widget,
                  const char *default_field)
 {                 
@@ -300,7 +303,7 @@ eap_method_init (EAPMethod *method,
 	method->update_secrets = update_secrets;
 	method->destroy = destroy;
 
-	method->xml = xml;
+	method->builder = builder;
 	method->ui_widget = ui_widget;
 	method->default_field = default_field;
 }
@@ -328,17 +331,17 @@ eap_method_unref (EAPMethod *method)
 	if (method->refcount == 0) {
 		if (method->nag_dialog)
 			gtk_widget_destroy (method->nag_dialog);
-		if (method->nag_dialog_xml)
-			g_object_unref (method->nag_dialog_xml);
+		if (method->nag_dialog_ui)
+			g_object_unref (method->nag_dialog_ui);
 		g_free (method->ca_cert_chooser);
-		g_object_unref (method->xml);
+		g_object_unref (method->builder);
 		g_object_unref (method->ui_widget);
 		(*(method->destroy)) (method);
 	}
 }
 
 gboolean
-eap_method_validate_filepicker (GladeXML *xml,
+eap_method_validate_filepicker (GtkBuilder *builder,
                                 const char *name,
                                 guint32 item_type,
                                 const char *password,
@@ -355,7 +358,7 @@ eap_method_validate_filepicker (GladeXML *xml,
 		g_return_val_if_fail (strlen (password), FALSE);
 	}
 
-	widget = glade_xml_get_widget (xml, name);
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, name));
 	g_assert (widget);
 	filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (widget));
 	if (!filename)
diff --git a/src/wireless-security/eap-method.h b/src/wireless-security/eap-method.h
index 5c510aa..0026ea0 100644
--- a/src/wireless-security/eap-method.h
+++ b/src/wireless-security/eap-method.h
@@ -25,7 +25,6 @@
 
 #include <glib.h>
 #include <gtk/gtk.h>
-#include <glade/glade.h>
 
 #include <nm-connection.h>
 #include <nm-setting-8021x.h>
@@ -40,10 +39,10 @@ typedef gboolean    (*EMValidateFunc)       (EAPMethod *method);
 
 struct _EAPMethod {
 	guint32 refcount;
-	GladeXML *xml;
+	GtkBuilder *builder;
 	GtkWidget *ui_widget;
 
-	GladeXML *nag_dialog_xml;
+	GtkBuilder *nag_dialog_ui;
 	char *ca_cert_chooser;
 	const char *default_field;
 	GtkWidget *nag_dialog;
@@ -92,7 +91,7 @@ void eap_method_init (EAPMethod *method,
                       EMFillConnectionFunc fill_connection,
                       EMUpdateSecretsFunc update_secrets,
                       EMDestroyFunc destroy,
-                      GladeXML *xml,
+                      GtkBuilder *builder,
                       GtkWidget *ui_widget,
                       const char *default_field);
 
@@ -104,14 +103,14 @@ gboolean eap_method_is_encrypted_private_key (const char *path);
 #define TYPE_CA_CERT     1
 #define TYPE_PRIVATE_KEY 2
 
-gboolean eap_method_validate_filepicker (GladeXML *xml,
+gboolean eap_method_validate_filepicker (GtkBuilder *builder,
                                          const char *name,
                                          guint32 item_type,
                                          const char *password,
                                          NMSetting8021xCKFormat *out_format);
 
 gboolean eap_method_nag_init (EAPMethod *method,
-                              const char *glade_file,
+                              const char *ui_file,
                               const char *ca_cert_chooser,
                               NMConnection *connection,
                               gboolean phase2);
diff --git a/src/wireless-security/helpers.c b/src/wireless-security/helpers.c
index c881ca5..273708f 100644
--- a/src/wireless-security/helpers.c
+++ b/src/wireless-security/helpers.c
@@ -25,7 +25,7 @@
 
 void
 helper_fill_secret_entry (NMConnection *connection,
-                          GladeXML *xml,
+                          GtkBuilder *builder,
                           const char *entry_name,
                           GType setting_type,
                           HelperSecretFunc func)
@@ -35,7 +35,7 @@ helper_fill_secret_entry (NMConnection *connection,
 	const char *tmp;
 
 	g_return_if_fail (connection != NULL);
-	g_return_if_fail (xml != NULL);
+	g_return_if_fail (builder != NULL);
 	g_return_if_fail (entry_name != NULL);
 	g_return_if_fail (func != NULL);
 
@@ -43,7 +43,7 @@ helper_fill_secret_entry (NMConnection *connection,
 	if (setting) {
 		tmp = (*func) (setting);
 		if (tmp) {
-			widget = glade_xml_get_widget (xml, entry_name);
+			widget = GTK_WIDGET (gtk_builder_get_object (builder, entry_name));
 			g_assert (widget);
 			gtk_entry_set_text (GTK_ENTRY (widget), tmp);
 		}
diff --git a/src/wireless-security/helpers.h b/src/wireless-security/helpers.h
index f71cfe3..55e2b45 100644
--- a/src/wireless-security/helpers.h
+++ b/src/wireless-security/helpers.h
@@ -25,14 +25,13 @@
 
 #include <glib.h>
 #include <gtk/gtk.h>
-#include <glade/glade.h>
 #include <nm-connection.h>
 #include <nm-setting.h>
 
 typedef const char * (*HelperSecretFunc)(NMSetting *);
 
 void helper_fill_secret_entry (NMConnection *connection,
-                               GladeXML *xml,
+                               GtkBuilder *builder,
                                const char *entry_name,
                                GType setting_type,
                                HelperSecretFunc func);
diff --git a/src/wireless-security/wireless-security.c b/src/wireless-security/wireless-security.c
index 1a51e6b..b15404e 100644
--- a/src/wireless-security/wireless-security.c
+++ b/src/wireless-security/wireless-security.c
@@ -137,7 +137,7 @@ wireless_security_unref (WirelessSecurity *sec)
 
 	sec->refcount--;
 	if (sec->refcount == 0) {
-		g_object_unref (sec->xml);
+		g_object_unref (sec->builder);
 		g_object_unref (sec->ui_widget);
 		(*(sec->destroy)) (sec);
 	}
@@ -150,7 +150,7 @@ wireless_security_init (WirelessSecurity *sec,
                         WSFillConnectionFunc fill_connection,
                         WSUpdateSecretsFunc update_secrets,
                         WSDestroyFunc destroy,
-                        GladeXML *xml,
+                        GtkBuilder *builder,
                         GtkWidget *ui_widget,
                         const char *default_field)
 {
@@ -162,7 +162,7 @@ wireless_security_init (WirelessSecurity *sec,
 	sec->update_secrets = update_secrets;
 	sec->destroy = destroy;
 
-	sec->xml = xml;
+	sec->builder = builder;
 	sec->ui_widget = ui_widget;
 	sec->default_field = default_field;
 }
@@ -204,11 +204,11 @@ ws_802_1x_add_to_size_group (WirelessSecurity *sec,
 	GtkTreeIter iter;
 	EAPMethod *eap;
 
-	widget = glade_xml_get_widget (sec->xml, label_name);
+	widget = GTK_WIDGET (gtk_builder_get_object (sec->builder, label_name));
 	g_assert (widget);
 	gtk_size_group_add_widget (size_group, widget);
 
-	widget = glade_xml_get_widget (sec->xml, combo_name);
+	widget = GTK_WIDGET (gtk_builder_get_object (sec->builder, combo_name));
 	g_assert (widget);
 
 	model = gtk_combo_box_get_model (GTK_COMBO_BOX (widget));
@@ -228,7 +228,7 @@ ws_802_1x_validate (WirelessSecurity *sec, const char *combo_name)
 	EAPMethod *eap = NULL;
 	gboolean valid = FALSE;
 
-	widget = glade_xml_get_widget (sec->xml, combo_name);
+	widget = GTK_WIDGET (gtk_builder_get_object (sec->builder, combo_name));
 	g_assert (widget);
 
 	model = gtk_combo_box_get_model (GTK_COMBO_BOX (widget));
@@ -254,7 +254,7 @@ ws_802_1x_auth_combo_changed (GtkWidget *combo,
 	GtkWidget *eap_widget;
 	GtkWidget *eap_default_widget = NULL;
 
-	vbox = glade_xml_get_widget (sec->xml, vbox_name);
+	vbox = GTK_WIDGET (gtk_builder_get_object (sec->builder, vbox_name));
 	g_assert (vbox);
 
 	/* Remove any previous wireless security widgets */
@@ -269,6 +269,7 @@ ws_802_1x_auth_combo_changed (GtkWidget *combo,
 
 	eap_widget = eap_method_get_widget (eap);
 	g_assert (eap_widget);
+	gtk_widget_unparent (eap_widget);
 
 	if (size_group)
 		eap_method_add_to_size_group (eap, size_group);
@@ -276,7 +277,7 @@ ws_802_1x_auth_combo_changed (GtkWidget *combo,
 
 	/* Refocus the EAP method's default widget */
 	if (eap->default_field) {
-		eap_default_widget = glade_xml_get_widget (eap->xml, eap->default_field);
+		eap_default_widget = GTK_WIDGET (gtk_builder_get_object (eap->builder, eap->default_field));
 		if (eap_default_widget)
 			gtk_widget_grab_focus (eap_default_widget);
 	}
@@ -288,7 +289,7 @@ ws_802_1x_auth_combo_changed (GtkWidget *combo,
 
 GtkWidget *
 ws_802_1x_auth_combo_init (WirelessSecurity *sec,
-                           const char *glade_file,
+                           const char *ui_file,
                            const char *combo_name,
                            GCallback auth_combo_changed_cb,
                            NMConnection *connection,
@@ -323,7 +324,7 @@ ws_802_1x_auth_combo_init (WirelessSecurity *sec,
 
 	auth_model = gtk_list_store_new (2, G_TYPE_STRING, eap_method_get_g_type ());
 
-	em_tls = eap_method_tls_new (glade_file, sec, connection, FALSE);
+	em_tls = eap_method_tls_new (ui_file, sec, connection, FALSE);
 	gtk_list_store_append (auth_model, &iter);
 	gtk_list_store_set (auth_model, &iter,
 	                    AUTH_NAME_COLUMN, _("TLS"),
@@ -335,7 +336,7 @@ ws_802_1x_auth_combo_init (WirelessSecurity *sec,
 	item++;
 
 	if (!wired) {
-		em_leap = eap_method_leap_new (glade_file, sec, connection);
+		em_leap = eap_method_leap_new (ui_file, sec, connection);
 		gtk_list_store_append (auth_model, &iter);
 		gtk_list_store_set (auth_model, &iter,
 		                    AUTH_NAME_COLUMN, _("LEAP"),
@@ -347,7 +348,7 @@ ws_802_1x_auth_combo_init (WirelessSecurity *sec,
 		item++;
 	}
 
-	em_ttls = eap_method_ttls_new (glade_file, sec, connection, is_editor);
+	em_ttls = eap_method_ttls_new (ui_file, sec, connection, is_editor);
 	gtk_list_store_append (auth_model, &iter);
 	gtk_list_store_set (auth_model, &iter,
 	                    AUTH_NAME_COLUMN, _("Tunneled TLS"),
@@ -358,7 +359,7 @@ ws_802_1x_auth_combo_init (WirelessSecurity *sec,
 		active = item;
 	item++;
 
-	em_peap = eap_method_peap_new (glade_file, sec, connection, is_editor);
+	em_peap = eap_method_peap_new (ui_file, sec, connection, is_editor);
 	gtk_list_store_append (auth_model, &iter);
 	gtk_list_store_set (auth_model, &iter,
 	                    AUTH_NAME_COLUMN, _("Protected EAP (PEAP)"),
@@ -369,7 +370,7 @@ ws_802_1x_auth_combo_init (WirelessSecurity *sec,
 		active = item;
 	item++;
 
-	combo = glade_xml_get_widget (sec->xml, combo_name);
+	combo = GTK_WIDGET (gtk_builder_get_object (sec->builder, combo_name));
 	g_assert (combo);
 
 	gtk_combo_box_set_model (GTK_COMBO_BOX (combo), GTK_TREE_MODEL (auth_model));
@@ -407,7 +408,7 @@ ws_802_1x_fill_connection (WirelessSecurity *sec,
 	s_8021x = (NMSetting8021x *) nm_setting_802_1x_new ();
 	nm_connection_add_setting (connection, (NMSetting *) s_8021x);
 
-	widget = glade_xml_get_widget (sec->xml, combo_name);
+	widget = GTK_WIDGET (gtk_builder_get_object (sec->builder, combo_name));
 	model = gtk_combo_box_get_model (GTK_COMBO_BOX (widget));
 	gtk_combo_box_get_active_iter (GTK_COMBO_BOX (widget), &iter);
 	gtk_tree_model_get (model, &iter, AUTH_METHOD_COLUMN, &eap, -1);
@@ -431,7 +432,7 @@ ws_802_1x_update_secrets (WirelessSecurity *sec,
 	g_return_if_fail (combo_name != NULL);
 	g_return_if_fail (connection != NULL);
 
-	widget = glade_xml_get_widget (sec->xml, combo_name);
+	widget = GTK_WIDGET (gtk_builder_get_object (sec->builder, combo_name));
 	g_return_if_fail (widget != NULL);
 	model = gtk_combo_box_get_model (GTK_COMBO_BOX (widget));
 
@@ -456,7 +457,7 @@ ws_802_1x_nag_user (WirelessSecurity *sec,
 	EAPMethod *eap = NULL;
 	GtkWidget *widget;	
 
-	widget = glade_xml_get_widget (sec->xml, combo_name);
+	widget = GTK_WIDGET (gtk_builder_get_object (sec->builder, combo_name));
 	model = gtk_combo_box_get_model (GTK_COMBO_BOX (widget));
 	gtk_combo_box_get_active_iter (GTK_COMBO_BOX (widget), &iter);
 	gtk_tree_model_get (model, &iter, AUTH_METHOD_COLUMN, &eap, -1);
diff --git a/src/wireless-security/wireless-security.h b/src/wireless-security/wireless-security.h
index 22507e5..3072386 100644
--- a/src/wireless-security/wireless-security.h
+++ b/src/wireless-security/wireless-security.h
@@ -25,7 +25,6 @@
 
 #include <glib.h>
 #include <gtk/gtk.h>
-#include <glade/glade.h>
 
 #include <nm-connection.h>
 
@@ -42,7 +41,7 @@ typedef GtkWidget * (*WSNagUserFunc) (WirelessSecurity *sec);
 
 struct _WirelessSecurity {
 	guint32 refcount;
-	GladeXML *xml;
+	GtkBuilder *builder;
 	GtkWidget *ui_widget;
 	WSChangedFunc changed_notify;
 	gpointer changed_notify_data;
@@ -98,7 +97,7 @@ void wireless_security_init (WirelessSecurity *sec,
                              WSFillConnectionFunc fill_connection,
                              WSUpdateSecretsFunc update_secrets,
                              WSDestroyFunc destroy,
-                             GladeXML *xml,
+                             GtkBuilder *builder,
                              GtkWidget *ui_widget,
                              const char *default_field);
 
@@ -110,7 +109,7 @@ void wireless_security_clear_ciphers (NMConnection *connection);
 #define AUTH_METHOD_COLUMN 1
 
 GtkWidget *ws_802_1x_auth_combo_init (WirelessSecurity *sec,
-                                      const char *glade_file,
+                                      const char *ui_file,
                                       const char *combo_name,
                                       GCallback auth_combo_changed_cb,
                                       NMConnection *connection,
diff --git a/src/wireless-security/ws-dynamic-wep.c b/src/wireless-security/ws-dynamic-wep.c
index 5e0ea6d..9f18570 100644
--- a/src/wireless-security/ws-dynamic-wep.c
+++ b/src/wireless-security/ws-dynamic-wep.c
@@ -21,7 +21,6 @@
  */
 
 #include <glib/gi18n.h>
-#include <glade/glade.h>
 #include <ctype.h>
 #include <string.h>
 #include <nm-setting-wireless.h>
@@ -104,29 +103,32 @@ update_secrets (WirelessSecurity *parent, NMConnection *connection)
 }
 
 WirelessSecurityDynamicWEP *
-ws_dynamic_wep_new (const char *glade_file,
+ws_dynamic_wep_new (const char *ui_file,
                     NMConnection *connection,
                     gboolean is_editor)
 {
 	WirelessSecurityDynamicWEP *sec;
 	GtkWidget *widget;
-	GladeXML *xml;
+	GtkBuilder *builder;
+	GError *error = NULL;
 
-	g_return_val_if_fail (glade_file != NULL, NULL);
+	g_return_val_if_fail (ui_file != NULL, NULL);
 
-	xml = glade_xml_new (glade_file, "dynamic_wep_notebook", NULL);
-	if (xml == NULL) {
-		g_warning ("Couldn't get dynamic_wep_widget from glade xml");
+	builder = gtk_builder_new();
+	if (!gtk_builder_add_from_file (builder, ui_file, &error))
+	{
+		g_warning ("Couldn't load builder file: %s", error->message);
+		g_error_free (error);
 		return NULL;
 	}
 
-	widget = glade_xml_get_widget (xml, "dynamic_wep_notebook");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "dynamic_wep_notebook"));
 	g_assert (widget);
 	g_object_ref_sink (widget);
 
 	sec = g_slice_new0 (WirelessSecurityDynamicWEP);
 	if (!sec) {
-		g_object_unref (xml);
+		g_object_unref (builder);
 		g_object_unref (widget);
 		return NULL;
 	}
@@ -137,14 +139,14 @@ ws_dynamic_wep_new (const char *glade_file,
 	                        fill_connection,
 	                        update_secrets,
 	                        destroy,
-	                        xml,
+	                        builder,
 	                        widget,
 	                        NULL);
 
 	WIRELESS_SECURITY (sec)->nag_user = nag_user;
 
 	widget = ws_802_1x_auth_combo_init (WIRELESS_SECURITY (sec),
-	                                    glade_file,
+	                                    ui_file,
 	                                    "dynamic_wep_auth_combo",
 	                                    (GCallback) auth_combo_changed_cb,
 	                                    connection,
diff --git a/src/wireless-security/ws-dynamic-wep.h b/src/wireless-security/ws-dynamic-wep.h
index 4924ba0..7218799 100644
--- a/src/wireless-security/ws-dynamic-wep.h
+++ b/src/wireless-security/ws-dynamic-wep.h
@@ -29,7 +29,7 @@ typedef struct {
 	GtkSizeGroup *size_group;
 } WirelessSecurityDynamicWEP;
 
-WirelessSecurityDynamicWEP * ws_dynamic_wep_new (const char *glade_file,
+WirelessSecurityDynamicWEP * ws_dynamic_wep_new (const char *ui_file,
                                                  NMConnection *connection,
                                                  gboolean is_editor);
 
diff --git a/src/wireless-security/ws-leap.c b/src/wireless-security/ws-leap.c
index aa2e320..6f94dd0 100644
--- a/src/wireless-security/ws-leap.c
+++ b/src/wireless-security/ws-leap.c
@@ -20,7 +20,6 @@
  * (C) Copyright 2007 - 2009 Red Hat, Inc.
  */
 
-#include <glade/glade.h>
 #include <string.h>
 #include <nm-setting-wireless.h>
 
@@ -36,7 +35,7 @@ show_toggled_cb (GtkCheckButton *button, WirelessSecurity *sec)
 	GtkWidget *widget;
 	gboolean visible;
 
-	widget = glade_xml_get_widget (sec->xml, "leap_password_entry");
+	widget = GTK_WIDGET (gtk_builder_get_object (sec->builder, "leap_password_entry"));
 	g_assert (widget);
 
 	visible = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (button));
@@ -57,13 +56,13 @@ validate (WirelessSecurity *parent, const GByteArray *ssid)
 	GtkWidget *entry;
 	const char *text;
 
-	entry = glade_xml_get_widget (parent->xml, "leap_username_entry");
+	entry = GTK_WIDGET (gtk_builder_get_object (parent->builder, "leap_username_entry"));
 	g_assert (entry);
 	text = gtk_entry_get_text (GTK_ENTRY (entry));
 	if (!text || !strlen (text))
 		return FALSE;
 
-	entry = glade_xml_get_widget (parent->xml, "leap_password_entry");
+	entry = GTK_WIDGET (gtk_builder_get_object (parent->builder, "leap_password_entry"));
 	g_assert (entry);
 	text = gtk_entry_get_text (GTK_ENTRY (entry));
 	if (!text || !strlen (text))
@@ -77,10 +76,10 @@ add_to_size_group (WirelessSecurity *parent, GtkSizeGroup *group)
 {
 	GtkWidget *widget;
 
-	widget = glade_xml_get_widget (parent->xml, "leap_username_label");
+	widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "leap_username_label"));
 	gtk_size_group_add_widget (group, widget);
 
-	widget = glade_xml_get_widget (parent->xml, "leap_password_label");
+	widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "leap_password_label"));
 	gtk_size_group_add_widget (group, widget);
 }
 
@@ -101,10 +100,10 @@ fill_connection (WirelessSecurity *parent, NMConnection *connection)
 	s_wireless_sec = (NMSettingWirelessSecurity *) nm_setting_wireless_security_new ();
 	nm_connection_add_setting (connection, (NMSetting *) s_wireless_sec);
 
-	widget = glade_xml_get_widget (parent->xml, "leap_username_entry");
+	widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "leap_username_entry"));
 	leap_username = gtk_entry_get_text (GTK_ENTRY (widget));
 
-	widget = glade_xml_get_widget (parent->xml, "leap_password_entry");
+	widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "leap_password_entry"));
 	leap_password = gtk_entry_get_text (GTK_ENTRY (widget));
 
 	g_object_set (s_wireless_sec,
@@ -119,35 +118,38 @@ static void
 update_secrets (WirelessSecurity *parent, NMConnection *connection)
 {
 	helper_fill_secret_entry (connection,
-	                          parent->xml,
+	                          parent->builder,
 	                          "leap_password_entry",
 	                          NM_TYPE_SETTING_WIRELESS_SECURITY,
 	                          (HelperSecretFunc) nm_setting_wireless_security_get_leap_password);
 }
 
 WirelessSecurityLEAP *
-ws_leap_new (const char *glade_file, NMConnection *connection)
+ws_leap_new (const char *ui_file, NMConnection *connection)
 {
 	WirelessSecurityLEAP *sec;
 	GtkWidget *widget;
-	GladeXML *xml;
+	GtkBuilder *builder;
 	NMSettingWirelessSecurity *wsec = NULL;
+	GError *error = NULL;
 
-	g_return_val_if_fail (glade_file != NULL, NULL);
+	g_return_val_if_fail (ui_file != NULL, NULL);
 
-	xml = glade_xml_new (glade_file, "leap_notebook", NULL);
-	if (xml == NULL) {
-		g_warning ("Couldn't get leap_widget from glade xml");
+	builder = gtk_builder_new ();
+	if (!gtk_builder_add_from_file (builder, ui_file, &error))
+	{
+		g_warning ("Couldn't load builder file: %s", error->message);
+		g_error_free (error);
 		return NULL;
 	}
 
-	widget = glade_xml_get_widget (xml, "leap_notebook");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "leap_notebook"));
 	g_assert (widget);
 	g_object_ref_sink (widget);
 
 	sec = g_slice_new0 (WirelessSecurityLEAP);
 	if (!sec) {
-		g_object_unref (xml);
+		g_object_unref (builder);
 		g_object_unref (widget);
 		return NULL;
 	}
@@ -158,7 +160,7 @@ ws_leap_new (const char *glade_file, NMConnection *connection)
 	                        fill_connection,
 	                        update_secrets,
 	                        destroy,
-	                        xml,
+	                        builder,
 	                        widget,
 	                        "leap_username_entry");
 
@@ -174,7 +176,7 @@ ws_leap_new (const char *glade_file, NMConnection *connection)
 		}
 	}
 
-	widget = glade_xml_get_widget (xml, "leap_password_entry");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "leap_password_entry"));
 	g_assert (widget);
 	g_signal_connect (G_OBJECT (widget), "changed",
 	                  (GCallback) wireless_security_changed_cb,
@@ -182,7 +184,7 @@ ws_leap_new (const char *glade_file, NMConnection *connection)
 	if (wsec)
 		update_secrets (WIRELESS_SECURITY (sec), connection);
 
-	widget = glade_xml_get_widget (xml, "leap_username_entry");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "leap_username_entry"));
 	g_assert (widget);
 	g_signal_connect (G_OBJECT (widget), "changed",
 	                  (GCallback) wireless_security_changed_cb,
@@ -190,7 +192,7 @@ ws_leap_new (const char *glade_file, NMConnection *connection)
 	if (wsec)
 		gtk_entry_set_text (GTK_ENTRY (widget), nm_setting_wireless_security_get_leap_username (wsec));
 
-	widget = glade_xml_get_widget (xml, "show_checkbutton");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "show_checkbutton_leap"));
 	g_assert (widget);
 	g_signal_connect (G_OBJECT (widget), "toggled",
 	                  (GCallback) show_toggled_cb,
diff --git a/src/wireless-security/ws-leap.h b/src/wireless-security/ws-leap.h
index 2fee9d1..4949341 100644
--- a/src/wireless-security/ws-leap.h
+++ b/src/wireless-security/ws-leap.h
@@ -28,7 +28,7 @@ typedef struct {
 
 } WirelessSecurityLEAP;
 
-WirelessSecurityLEAP * ws_leap_new (const char *glade_file,
+WirelessSecurityLEAP * ws_leap_new (const char *ui_file,
                                     NMConnection *connection);
 
 #endif /* WS_LEAP_H */
diff --git a/src/wireless-security/ws-wep-key.c b/src/wireless-security/ws-wep-key.c
index 60d9bfa..31a76f7 100644
--- a/src/wireless-security/ws-wep-key.c
+++ b/src/wireless-security/ws-wep-key.c
@@ -20,7 +20,6 @@
  * (C) Copyright 2007 - 2009 Red Hat, Inc.
  */
 
-#include <glade/glade.h>
 #include <ctype.h>
 #include <string.h>
 
@@ -38,7 +37,7 @@ show_toggled_cb (GtkCheckButton *button, WirelessSecurity *sec)
 	GtkWidget *widget;
 	gboolean visible;
 
-	widget = glade_xml_get_widget (sec->xml, "wep_key_entry");
+	widget = GTK_WIDGET (gtk_builder_get_object (sec->builder, "wep_key_entry"));
 	g_assert (widget);
 
 	visible = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (button));
@@ -54,7 +53,7 @@ key_index_combo_changed_cb (GtkWidget *combo, WirelessSecurity *parent)
 	int key_index;
 
 	/* Save WEP key for old key index */
-	entry = glade_xml_get_widget (parent->xml, "wep_key_entry");
+	entry = GTK_WIDGET (gtk_builder_get_object (parent->builder, "wep_key_entry"));
 	key = gtk_entry_get_text (GTK_ENTRY (entry));
 	if (key)
 		strcpy (sec->keys[sec->cur_index], key);
@@ -92,7 +91,7 @@ validate (WirelessSecurity *parent, const GByteArray *ssid)
 	const char *key;
 	int i;
 
-	entry = glade_xml_get_widget (parent->xml, "wep_key_entry");
+	entry = GTK_WIDGET (gtk_builder_get_object (parent->builder, "wep_key_entry"));
 	g_assert (entry);
 
 	key = gtk_entry_get_text (GTK_ENTRY (entry));
@@ -126,13 +125,13 @@ add_to_size_group (WirelessSecurity *parent, GtkSizeGroup *group)
 {
 	GtkWidget *widget;
 
-	widget = glade_xml_get_widget (parent->xml, "auth_method_label");
+	widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "auth_method_label"));
 	gtk_size_group_add_widget (group, widget);
 
-	widget = glade_xml_get_widget (parent->xml, "wep_key_label");
+	widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "wep_key_label"));
 	gtk_size_group_add_widget (group, widget);
 
-	widget = glade_xml_get_widget (parent->xml, "key_index_label");
+	widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "key_index_label"));
 	gtk_size_group_add_widget (group, widget);
 }
 
@@ -147,10 +146,10 @@ fill_connection (WirelessSecurity *parent, NMConnection *connection)
 	const char *key;
 	int i;
 
-	widget = glade_xml_get_widget (parent->xml, "auth_method_combo");
+	widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "auth_method_combo"));
 	auth_alg = gtk_combo_box_get_active (GTK_COMBO_BOX (widget));
 
-	widget = glade_xml_get_widget (parent->xml, "wep_key_entry");
+	widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "wep_key_entry"));
 	key = gtk_entry_get_text (GTK_ENTRY (widget));
 	strcpy (sec->keys[sec->cur_index], key);
 
@@ -230,13 +229,13 @@ update_secrets (WirelessSecurity *parent, NMConnection *connection)
 			strcpy (sec->keys[i], tmp);
 	}
 
-	widget = glade_xml_get_widget (parent->xml, "wep_key_entry");
+	widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "wep_key_entry"));
 	if (strlen (sec->keys[sec->cur_index]))
 		gtk_entry_set_text (GTK_ENTRY (widget), sec->keys[sec->cur_index]);
 }
 
 WirelessSecurityWEPKey *
-ws_wep_key_new (const char *glade_file,
+ws_wep_key_new (const char *ui_file,
                 NMConnection *connection,
                 NMWepKeyType type,
                 gboolean adhoc_create,
@@ -244,27 +243,30 @@ ws_wep_key_new (const char *glade_file,
 {
 	WirelessSecurityWEPKey *sec;
 	GtkWidget *widget;
-	GladeXML *xml;
+	GtkBuilder *builder;
 	NMSettingWirelessSecurity *s_wsec = NULL;
 	guint8 default_key_idx = 0;
 	gboolean is_adhoc = adhoc_create;
 	gboolean is_shared_key = FALSE;
+	GError *error = NULL;
 
-	g_return_val_if_fail (glade_file != NULL, NULL);
+	g_return_val_if_fail (ui_file != NULL, NULL);
 
-	xml = glade_xml_new (glade_file, "wep_key_notebook", NULL);
-	if (xml == NULL) {
-		g_warning ("Couldn't get wep_key_widget from glade xml");
+	builder = gtk_builder_new ();
+	if (!gtk_builder_add_from_file (builder, ui_file, &error))
+	{
+		g_warning ("Couldn't load builder file: %s", error->message);
+		g_error_free (error);
 		return NULL;
 	}
 
-	widget = glade_xml_get_widget (xml, "wep_key_notebook");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "wep_key_notebook"));
 	g_assert (widget);
 	g_object_ref_sink (widget);
 
 	sec = g_slice_new0 (WirelessSecurityWEPKey);
 	if (!sec) {
-		g_object_unref (xml);
+		g_object_unref (builder);
 		g_object_unref (widget);
 		return NULL;
 	}
@@ -275,12 +277,12 @@ ws_wep_key_new (const char *glade_file,
 	                        fill_connection,
 	                        update_secrets,
 	                        destroy,
-	                        xml,
+	                        builder,
 	                        widget,
 	                        "wep_key_entry");
 	sec->type = type;
 
-	widget = glade_xml_get_widget (xml, "wep_key_entry");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "wep_key_entry"));
 	g_assert (widget);
 	gtk_entry_set_width_chars (GTK_ENTRY (widget), 28);
 
@@ -312,7 +314,7 @@ ws_wep_key_new (const char *glade_file,
 	else if (sec->type == NM_WEP_KEY_TYPE_PASSPHRASE)
 		gtk_entry_set_max_length (GTK_ENTRY (widget), 64);
 
-	widget = glade_xml_get_widget (xml, "key_index_combo");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "key_index_combo"));
 	if (connection && s_wsec)
 		default_key_idx = nm_setting_wireless_security_get_wep_tx_keyidx (s_wsec);
 
@@ -325,7 +327,7 @@ ws_wep_key_new (const char *glade_file,
 	/* Key index is useless with adhoc networks */
 	if (is_adhoc || simple) {
 		gtk_widget_hide (widget);
-		widget = glade_xml_get_widget (xml, "key_index_label");
+		widget = GTK_WIDGET (gtk_builder_get_object (builder, "key_index_label"));
 		gtk_widget_hide (widget);
 	}
 
@@ -333,13 +335,13 @@ ws_wep_key_new (const char *glade_file,
 	if (connection)
 		update_secrets (WIRELESS_SECURITY (sec), connection);
 
-	widget = glade_xml_get_widget (xml, "show_checkbutton");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "show_checkbutton_wep"));
 	g_assert (widget);
 	g_signal_connect (G_OBJECT (widget), "toggled",
 	                  (GCallback) show_toggled_cb,
 	                  sec);
 
-	widget = glade_xml_get_widget (xml, "auth_method_combo");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "auth_method_combo"));
 	gtk_combo_box_set_active (GTK_COMBO_BOX (widget), is_shared_key ? 1 : 0);
 
 	g_signal_connect (G_OBJECT (widget), "changed",
@@ -354,7 +356,7 @@ ws_wep_key_new (const char *glade_file,
 		if (is_adhoc)
 			gtk_combo_box_set_active (GTK_COMBO_BOX (widget), 0);
 		gtk_widget_hide (widget);
-		widget = glade_xml_get_widget (xml, "auth_method_label");
+		widget = GTK_WIDGET (gtk_builder_get_object (builder, "auth_method_label"));
 		gtk_widget_hide (widget);
 	}
 
diff --git a/src/wireless-security/ws-wep-key.h b/src/wireless-security/ws-wep-key.h
index 0189ed8..ca746ca 100644
--- a/src/wireless-security/ws-wep-key.h
+++ b/src/wireless-security/ws-wep-key.h
@@ -33,7 +33,7 @@ typedef struct {
 	guint8 cur_index;
 } WirelessSecurityWEPKey;
 
-WirelessSecurityWEPKey * ws_wep_key_new (const char *glade_file,
+WirelessSecurityWEPKey * ws_wep_key_new (const char *ui_file,
                                          NMConnection *connection,
                                          NMWepKeyType type,
                                          gboolean adhoc_create,
diff --git a/src/wireless-security/ws-wpa-eap.c b/src/wireless-security/ws-wpa-eap.c
index 98f7148..274fc16 100644
--- a/src/wireless-security/ws-wpa-eap.c
+++ b/src/wireless-security/ws-wpa-eap.c
@@ -21,7 +21,6 @@
  */
 
 #include <glib/gi18n.h>
-#include <glade/glade.h>
 #include <ctype.h>
 #include <string.h>
 #include <nm-setting-wireless.h>
@@ -99,29 +98,32 @@ update_secrets (WirelessSecurity *parent, NMConnection *connection)
 }
 
 WirelessSecurityWPAEAP *
-ws_wpa_eap_new (const char *glade_file,
+ws_wpa_eap_new (const char *ui_file,
                 NMConnection *connection,
                 gboolean is_editor)
 {
 	WirelessSecurityWPAEAP *sec;
 	GtkWidget *widget;
-	GladeXML *xml;
+	GtkBuilder *builder;
+	GError *error = NULL;
 
-	g_return_val_if_fail (glade_file != NULL, NULL);
+	g_return_val_if_fail (ui_file != NULL, NULL);
 
-	xml = glade_xml_new (glade_file, "wpa_eap_notebook", NULL);
-	if (xml == NULL) {
-		g_warning ("Couldn't get wpa_eap_widget from glade xml");
+	builder = gtk_builder_new ();
+	if (!gtk_builder_add_from_file (builder, ui_file, &error))
+	{
+		g_warning ("Couldn't load builder file: %s", error->message);
+		g_error_free (error);
 		return NULL;
 	}
 
-	widget = glade_xml_get_widget (xml, "wpa_eap_notebook");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "wpa_eap_notebook"));
 	g_assert (widget);
 	g_object_ref_sink (widget);
 
 	sec = g_slice_new0 (WirelessSecurityWPAEAP);
 	if (!sec) {
-		g_object_unref (xml);
+		g_object_unref (builder);
 		g_object_unref (widget);
 		return NULL;
 	}
@@ -132,14 +134,14 @@ ws_wpa_eap_new (const char *glade_file,
 	                        fill_connection,
 	                        update_secrets,
 	                        destroy,
-	                        xml,
+	                        builder,
 	                        widget,
 	                        NULL);
 
 	WIRELESS_SECURITY (sec)->nag_user = nag_user;
 
 	widget = ws_802_1x_auth_combo_init (WIRELESS_SECURITY (sec),
-	                                    glade_file,
+	                                    ui_file,
 	                                    "wpa_eap_auth_combo",
 	                                    (GCallback) auth_combo_changed_cb,
 	                                    connection,
diff --git a/src/wireless-security/ws-wpa-eap.h b/src/wireless-security/ws-wpa-eap.h
index efc92a6..55bfbbb 100644
--- a/src/wireless-security/ws-wpa-eap.h
+++ b/src/wireless-security/ws-wpa-eap.h
@@ -29,7 +29,7 @@ typedef struct {
 	GtkSizeGroup *size_group;
 } WirelessSecurityWPAEAP;
 
-WirelessSecurityWPAEAP * ws_wpa_eap_new (const char *glade_file,
+WirelessSecurityWPAEAP * ws_wpa_eap_new (const char *ui_file,
                                          NMConnection *connection,
                                          gboolean is_editor);
 
diff --git a/src/wireless-security/ws-wpa-psk.c b/src/wireless-security/ws-wpa-psk.c
index e7cf1c1..78712ce 100644
--- a/src/wireless-security/ws-wpa-psk.c
+++ b/src/wireless-security/ws-wpa-psk.c
@@ -20,7 +20,6 @@
  * (C) Copyright 2007 - 2009 Red Hat, Inc.
  */
 
-#include <glade/glade.h>
 #include <ctype.h>
 #include <string.h>
 #include <nm-setting-wireless.h>
@@ -38,7 +37,7 @@ show_toggled_cb (GtkCheckButton *button, WirelessSecurity *sec)
 	GtkWidget *widget;
 	gboolean visible;
 
-	widget = glade_xml_get_widget (sec->xml, "wpa_psk_entry");
+	widget = GTK_WIDGET (gtk_builder_get_object (sec->builder, "wpa_psk_entry"));
 	g_assert (widget);
 
 	visible = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (button));
@@ -61,7 +60,7 @@ validate (WirelessSecurity *parent, const GByteArray *ssid)
 	guint32 len;
 	int i;
 
-	entry = glade_xml_get_widget (parent->xml, "wpa_psk_entry");
+	entry = GTK_WIDGET (gtk_builder_get_object (parent->builder, "wpa_psk_entry"));
 	g_assert (entry);
 
 	key = gtk_entry_get_text (GTK_ENTRY (entry));
@@ -87,10 +86,10 @@ add_to_size_group (WirelessSecurity *parent, GtkSizeGroup *group)
 {
 	GtkWidget *widget;
 
-	widget = glade_xml_get_widget (parent->xml, "wpa_psk_type_label");
+	widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "wpa_psk_type_label"));
 	gtk_size_group_add_widget (group, widget);
 
-	widget = glade_xml_get_widget (parent->xml, "wpa_psk_label");
+	widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "wpa_psk_label"));
 	gtk_size_group_add_widget (group, widget);
 }
 
@@ -117,7 +116,7 @@ fill_connection (WirelessSecurity *parent, NMConnection *connection)
 	s_wireless_sec = (NMSettingWirelessSecurity *) nm_setting_wireless_security_new ();
 	nm_connection_add_setting (connection, (NMSetting *) s_wireless_sec);
 
-	widget = glade_xml_get_widget (parent->xml, "wpa_psk_entry");
+	widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "wpa_psk_entry"));
 	key = gtk_entry_get_text (GTK_ENTRY (widget));
 	g_object_set (s_wireless_sec, NM_SETTING_WIRELESS_SECURITY_PSK, key, NULL);
 
@@ -145,34 +144,37 @@ static void
 update_secrets (WirelessSecurity *parent, NMConnection *connection)
 {
 	helper_fill_secret_entry (connection,
-	                          parent->xml,
+	                          parent->builder,
 	                          "wpa_psk_entry",
 	                          NM_TYPE_SETTING_WIRELESS_SECURITY,
 	                          (HelperSecretFunc) nm_setting_wireless_security_get_psk);
 }
 
 WirelessSecurityWPAPSK *
-ws_wpa_psk_new (const char *glade_file, NMConnection *connection)
+ws_wpa_psk_new (const char *ui_file, NMConnection *connection)
 {
 	WirelessSecurityWPAPSK *sec;
 	GtkWidget *widget;
-	GladeXML *xml;
+	GtkBuilder *builder;
+	GError *error = NULL;
 
-	g_return_val_if_fail (glade_file != NULL, NULL);
+	g_return_val_if_fail (ui_file != NULL, NULL);
 
-	xml = glade_xml_new (glade_file, "wpa_psk_notebook", NULL);
-	if (xml == NULL) {
-		g_warning ("Couldn't get wpa_psk_widget from glade xml");
+	builder = gtk_builder_new ();
+	if (!gtk_builder_add_from_file (builder, ui_file, &error))
+	{
+		g_warning ("Couldn't load builder file: %s", error->message);
+		g_error_free (error);
 		return NULL;
 	}
 
-	widget = glade_xml_get_widget (xml, "wpa_psk_notebook");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "wpa_psk_notebook"));
 	g_assert (widget);
 	g_object_ref_sink (widget);
 
 	sec = g_slice_new0 (WirelessSecurityWPAPSK);
 	if (!sec) {
-		g_object_unref (xml);
+		g_object_unref (builder);
 		g_object_unref (widget);
 		return NULL;
 	}
@@ -183,11 +185,11 @@ ws_wpa_psk_new (const char *glade_file, NMConnection *connection)
 	                        fill_connection,
 	                        update_secrets,
 	                        destroy,
-	                        xml,
+	                        builder,
 	                        widget,
 	                        "wpa_psk_entry");
 
-	widget = glade_xml_get_widget (xml, "wpa_psk_entry");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "wpa_psk_entry"));
 	g_assert (widget);
 	g_signal_connect (G_OBJECT (widget), "changed",
 	                  (GCallback) wireless_security_changed_cb,
@@ -198,17 +200,17 @@ ws_wpa_psk_new (const char *glade_file, NMConnection *connection)
 	if (connection)
 		update_secrets (WIRELESS_SECURITY (sec), connection);
 
-	widget = glade_xml_get_widget (xml, "show_checkbutton");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "show_checkbutton_wpa"));
 	g_assert (widget);
 	g_signal_connect (G_OBJECT (widget), "toggled",
 	                  (GCallback) show_toggled_cb,
 	                  sec);
 
-	widget = glade_xml_get_widget (xml, "wpa_psk_type_combo");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "wpa_psk_type_combo"));
 	g_assert (widget);
 	gtk_widget_hide (widget);
 
-	widget = glade_xml_get_widget (xml, "wpa_psk_type_label");
+	widget = GTK_WIDGET (gtk_builder_get_object (builder, "wpa_psk_type_label"));
 	g_assert (widget);
 	gtk_widget_hide (widget);
 
diff --git a/src/wireless-security/ws-wpa-psk.h b/src/wireless-security/ws-wpa-psk.h
index c1dd3ad..4c973c7 100644
--- a/src/wireless-security/ws-wpa-psk.h
+++ b/src/wireless-security/ws-wpa-psk.h
@@ -28,7 +28,7 @@ typedef struct {
 
 } WirelessSecurityWPAPSK;
 
-WirelessSecurityWPAPSK * ws_wpa_psk_new (const char *glade_file,
+WirelessSecurityWPAPSK * ws_wpa_psk_new (const char *ui_file,
                                          NMConnection *connection);
 
 #endif /* WS_WEP_KEY_H */



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]