diff --git a/js/gdm/loginDialog.js b/js/gdm/loginDialog.js
index 47410ef..7ee38e0 100644
--- a/js/gdm/loginDialog.js
+++ b/js/gdm/loginDialog.js
@@ -499,6 +499,15 @@ const LoginDialog = new Lang.Class({
     _updateDisableUserList: function() {
         let disableUserList = this._settings.get_boolean(GdmUtil.DISABLE_USER_LIST_KEY);
 
+        if (disableUserList == false) {
+            if (this._userListLoaded == true) {
+                let items = this._userList._items;
+                let hasItems = Object.keys(items).length > 0;
+                if (hasItems == false)
+                    disableUserList = true;
+            }
+        }
+
         if (disableUserList != this._disableUserList) {
             this._disableUserList = disableUserList;
 
@@ -903,15 +912,18 @@ const LoginDialog = new Lang.Class({
         for (let i = 0; i < users.length; i++) {
             this._userList.addUser(users[i]);
         }
+        this._updateDisableUserList();
 
         this._userManager.connect('user-added',
                                   Lang.bind(this, function(userManager, user) {
                                       this._userList.addUser(user);
+                                      this._updateDisableUserList();
                                   }));
 
         this._userManager.connect('user-removed',
                                   Lang.bind(this, function(userManager, user) {
                                       this._userList.removeUser(user);
+                                      this._updateDisableUserList();
                                   }));
 
         return GLib.SOURCE_REMOVE;
