diff --git a/libempathy-gtk/empathy-account-widget-irc.c b/libempathy-gtk/empathy-account-widget-irc.c
index 6cb1e22..4507677 100644
--- a/libempathy-gtk/empathy-account-widget-irc.c
+++ b/libempathy-gtk/empathy-account-widget-irc.c
@@ -99,7 +99,7 @@ network_changed_cb (EmpathyIrcNetworkChooser *chooser,
   empathy_account_widget_changed (settings->self);
 }
 
-void
+EmpathyIrcNetworkChooser *
 empathy_account_widget_irc_build (EmpathyAccountWidget *self,
     const char *filename,
     GtkWidget **table_common_settings)
@@ -145,9 +145,11 @@ empathy_account_widget_irc_build (EmpathyAccountWidget *self,
   self->ui_details->default_focus = g_strdup ("entry_nick");
 
   g_object_unref (ac_settings);
+
+  return EMPATHY_IRC_NETWORK_CHOOSER (settings->network_chooser);
 }
 
-void
+EmpathyIrcNetworkChooser *
 empathy_account_widget_irc_build_simple (EmpathyAccountWidget *self,
     const char *filename)
 {
@@ -186,4 +188,6 @@ empathy_account_widget_irc_build_simple (EmpathyAccountWidget *self,
   self->ui_details->default_focus = g_strdup ("entry_nick_simple");
 
   g_object_unref (ac_settings);
+
+  return EMPATHY_IRC_NETWORK_CHOOSER (settings->network_chooser);
 }
diff --git a/libempathy-gtk/empathy-account-widget-irc.h b/libempathy-gtk/empathy-account-widget-irc.h
index 0c51cfa..cc5dfff 100644
--- a/libempathy-gtk/empathy-account-widget-irc.h
+++ b/libempathy-gtk/empathy-account-widget-irc.h
@@ -23,14 +23,17 @@
 
 #include <gtk/gtk.h>
 #include <libempathy-gtk/empathy-account-widget.h>
+#include <libempathy-gtk/empathy-irc-network-chooser.h>
 
 G_BEGIN_DECLS
 
-void empathy_account_widget_irc_build (EmpathyAccountWidget *self,
+EmpathyIrcNetworkChooser * empathy_account_widget_irc_build (
+    EmpathyAccountWidget *self,
     const char *filename,
     GtkWidget **table_common_settings);
 
-void empathy_account_widget_irc_build_simple (EmpathyAccountWidget *self,
+EmpathyIrcNetworkChooser * empathy_account_widget_irc_build_simple (
+    EmpathyAccountWidget *self,
     const char *filename);
 
 G_END_DECLS
diff --git a/libempathy-gtk/empathy-account-widget.c b/libempathy-gtk/empathy-account-widget.c
index 28a2fd3..d3cf1f3 100644
--- a/libempathy-gtk/empathy-account-widget.c
+++ b/libempathy-gtk/empathy-account-widget.c
@@ -88,6 +88,9 @@ typedef struct {
   GtkWidget *param_account_widget;
   GtkWidget *param_password_widget;
 
+  /* Used only for IRC accounts */
+  EmpathyIrcNetworkChooser *irc_network_chooser;
+
   gboolean dispose_run;
 } EmpathyAccountWidgetPriv;
 
@@ -904,12 +907,13 @@ account_widget_build_irc (EmpathyAccountWidget *self,
 
   if (priv->simple)
     {
-      empathy_account_widget_irc_build_simple (self, filename);
+      priv->irc_network_chooser = empathy_account_widget_irc_build_simple (self,
+          filename);
     }
   else
     {
-      empathy_account_widget_irc_build (self, filename,
-        &priv->table_common_settings);
+      priv->irc_network_chooser = empathy_account_widget_irc_build (self,
+          filename, &priv->table_common_settings);
     }
 }
 
@@ -2016,17 +2020,19 @@ empathy_account_widget_get_default_display_name (EmpathyAccountWidget *self)
       /* TODO: this should be done in empathy-account-widget-irc */
       if (!tp_strdiff (protocol, "irc"))
         {
-          const gchar* server;
-          server = empathy_account_settings_get_string (priv->settings,
-              "server");
+          EmpathyIrcNetwork *network;
+
+          network = empathy_irc_network_chooser_get_network (
+              priv->irc_network_chooser);
+          g_assert (network != NULL);
 
           /* To translators: The first parameter is the login id and the
-           * second one is the server. The resulting string will be something
-           * like: "MyUserName on chat.freenode.net".
+           * second one is the network. The resulting string will be something
+           * like: "MyUserName on freenode".
            * You should reverse the order of these arguments if the
            * server should come before the login id in your locale.*/
           default_display_name = g_strdup_printf (_("%1$s on %2$s"),
-              login_id, server);
+              login_id, empathy_irc_network_get_name (network));
         }
       else if (account_widget_is_facebook (self))
         {
diff --git a/libempathy-gtk/empathy-irc-network-chooser.c b/libempathy-gtk/empathy-irc-network-chooser.c
index 55a90fd..cc6b1cd 100644
--- a/libempathy-gtk/empathy-irc-network-chooser.c
+++ b/libempathy-gtk/empathy-irc-network-chooser.c
@@ -358,3 +358,11 @@ empathy_irc_network_chooser_new (EmpathyAccountSettings *settings)
       "settings", settings,
       NULL);
 }
+
+EmpathyIrcNetwork *
+empathy_irc_network_chooser_get_network (EmpathyIrcNetworkChooser *self)
+{
+  EmpathyIrcNetworkChooserPriv *priv = GET_PRIV (self);
+
+  return priv->network;
+}
diff --git a/libempathy-gtk/empathy-irc-network-chooser.h b/libempathy-gtk/empathy-irc-network-chooser.h
index 442ac2d..3b61250 100644
--- a/libempathy-gtk/empathy-irc-network-chooser.h
+++ b/libempathy-gtk/empathy-irc-network-chooser.h
@@ -25,6 +25,7 @@
 #include <gtk/gtk.h>
 
 #include <libempathy/empathy-account-settings.h>
+#include <libempathy/empathy-irc-network.h>
 
 G_BEGIN_DECLS
 
@@ -56,6 +57,9 @@ GType empathy_irc_network_chooser_get_type (void) G_GNUC_CONST;
 
 GtkWidget * empathy_irc_network_chooser_new (EmpathyAccountSettings *settings);
 
+EmpathyIrcNetwork * empathy_irc_network_chooser_get_network (
+    EmpathyIrcNetworkChooser *self);
+
 G_END_DECLS
 
 #endif /* __EMPATHY_IRC_NETWORK_CHOOSER_H__ */
