diff --git a/gui/simple-greeter/gdm-user-manager.c b/gui/simple-greeter/gdm-user-manager.c
index c4fb246..1f93c55 100644
--- a/gui/simple-greeter/gdm-user-manager.c
+++ b/gui/simple-greeter/gdm-user-manager.c
@@ -795,7 +795,7 @@ add_new_user_for_pwent (GdmUserManager *manager,
         g_debug ("Creating new user");
 
         user = create_user (manager);
-        _gdm_user_update (user, pwent);
+        _gdm_user_update (user, pwent, manager->priv->include_all);
 
         add_user (manager, user);
 
@@ -935,7 +935,7 @@ seat_session_added (DBusGProxy     *seat_proxy,
                 g_debug ("Creating new user");
 
                 user = create_user (manager);
-                _gdm_user_update (user, pwent);
+                _gdm_user_update (user, pwent, manager->priv->include_all);
                 is_new = TRUE;
         } else {
                 is_new = FALSE;
@@ -1474,7 +1474,7 @@ reload_passwd (GdmUserManager *manager)
 
                         /* Update users already in the *new* list */
                         if (g_slist_find (new_users, user)) {
-                                _gdm_user_update (user, pwent);
+                                _gdm_user_update (user, pwent, manager->priv->include_all);
                                 continue;
                         }
 
@@ -1486,7 +1486,7 @@ reload_passwd (GdmUserManager *manager)
 
                         /* Freeze & update users not already in the new list */
                         g_object_freeze_notify (G_OBJECT (user));
-                        _gdm_user_update (user, pwent);
+                        _gdm_user_update (user, pwent, manager->priv->include_all);
 
                         new_users = g_slist_prepend (new_users, user);
                 }
diff --git a/gui/simple-greeter/gdm-user-private.h b/gui/simple-greeter/gdm-user-private.h
index 1b1b368..64df97d 100644
--- a/gui/simple-greeter/gdm-user-private.h
+++ b/gui/simple-greeter/gdm-user-private.h
@@ -31,7 +31,8 @@
 G_BEGIN_DECLS
 
 void _gdm_user_update           (GdmUser             *user,
-                                 const struct passwd *pwent);
+                                 const struct passwd *pwent,
+                                 gboolean             add_monitor);
 void _gdm_user_add_session      (GdmUser             *user,
                                  const char          *session_id);
 void _gdm_user_remove_session   (GdmUser             *user,
diff --git a/gui/simple-greeter/gdm-user.c b/gui/simple-greeter/gdm-user.c
index 31ae696..265a54f 100644
--- a/gui/simple-greeter/gdm-user.c
+++ b/gui/simple-greeter/gdm-user.c
@@ -413,7 +413,8 @@ gdm_user_finalize (GObject *object)
  **/
 void
 _gdm_user_update (GdmUser             *user,
-                  const struct passwd *pwent)
+                  const struct passwd *pwent,
+                  gboolean             add_monitor)
 {
         gchar *real_name = NULL;
 
@@ -513,7 +514,9 @@ _gdm_user_update (GdmUser             *user,
                 g_object_notify (G_OBJECT (user), "shell");
         }
 
-        update_icon_monitor (user);
+        if (add_monitor) {
+                update_icon_monitor (user);
+        }
 
         g_object_thaw_notify (G_OBJECT (user));
 }
