diff --git a/model/jpa/src/main/java/org/keycloak/models/jpa/entities/UserEntity.java b/model/jpa/src/main/java/org/keycloak/models/jpa/entities/UserEntity.java
index 771487f..b239a55 100755
--- a/model/jpa/src/main/java/org/keycloak/models/jpa/entities/UserEntity.java
+++ b/model/jpa/src/main/java/org/keycloak/models/jpa/entities/UserEntity.java
@@ -48,7 +48,7 @@ import java.util.Collection;
@NamedQuery(name="getRealmUserByLastName", query="select u from UserEntity u where u.lastName = :lastName and u.realmId = :realmId"),
@NamedQuery(name="getRealmUserByFirstLastName", query="select u from UserEntity u where u.firstName = :first and u.lastName = :last and u.realmId = :realmId"),
@NamedQuery(name="getRealmUserByServiceAccount", query="select u from UserEntity u where u.serviceAccountClientLink = :clientInternalId and u.realmId = :realmId"),
- @NamedQuery(name="getRealmUserCount", query="select count(u) from UserEntity u where u.realmId = :realmId"),
+ @NamedQuery(name="getRealmUserCount", query="select count(u) from UserEntity u where u.realmId = :realmId and (u.serviceAccountClientLink is null)"),
@NamedQuery(name="getRealmUsersByAttributeNameAndValue", query="select u from UserEntity u join u.attributes attr " +
"where u.realmId = :realmId and attr.name = :name and attr.value = :value"),
@NamedQuery(name="deleteUsersByRealm", query="delete from UserEntity u where u.realmId = :realmId"),
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/admin/UserTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/admin/UserTest.java
index 8442339..20de89f 100755
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/admin/UserTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/admin/UserTest.java
@@ -406,6 +406,28 @@ public class UserTest extends AbstractAdminTest {
}
@Test
+ public void countUsersNotServiceAccount() {
+ createUsers();
+
+ Integer count = realm.users().count();
+ assertEquals(9, count.intValue());
+
+ ClientRepresentation client = new ClientRepresentation();
+
+ client.setClientId("test-client");
+ client.setPublicClient(false);
+ client.setSecret("secret");
+ client.setServiceAccountsEnabled(true);
+ client.setEnabled(true);
+ client.setRedirectUris(Arrays.asList("http://url"));
+
+ getAdminClient().realm(REALM_NAME).clients().create(client);
+
+ // KEYCLOAK-5660, should not consider service accounts
+ assertEquals(9, realm.users().count().intValue());
+ }
+
+ @Test
public void delete() {
String userId = createUser();
Response response = realm.users().delete(userId);