diff --git a/src/app/entity/models/EntityModelAbstract.php b/src/app/entity/models/EntityModelAbstract.php
index 7d780870ea6280d9d51871c47c7f8d3c81ebae3a..ebeff7ccfcce9e318e67ef59d081b18a60e8e8b8 100644
--- a/src/app/entity/models/EntityModelAbstract.php
+++ b/src/app/entity/models/EntityModelAbstract.php
@@ -24,13 +24,15 @@ abstract class EntityModelAbstract
     public static function get(array $aArgs = [])
     {
         ValidatorModel::arrayType($aArgs, ['select', 'where', 'data', 'orderBy']);
+        ValidatorModel::intType($aArgs, ['limit']);
 
         $aEntities = DatabaseModel::select([
             'select'    => empty($aArgs['select']) ? ['*'] : $aArgs['select'],
             'table'     => ['entities'],
-            'where'     => $aArgs['where'],
-            'data'      => $aArgs['data'],
-            'order_by'  => $aArgs['orderBy']
+            'where'     => empty($aArgs['where']) ? [] : $aArgs['where'],
+            'data'      => empty($aArgs['data']) ? [] : $aArgs['data'],
+            'order_by'  => empty($aArgs['orderBy']) ? [] : $aArgs['orderBy'],
+            'limit'     => empty($aArgs['limit']) ? 0 : $aArgs['limit']
         ]);
 
         return $aEntities;
diff --git a/src/app/user/models/UserModelAbstract.php b/src/app/user/models/UserModelAbstract.php
index dd2ede28b6f1a9c050962e2a353417b0c4d67baf..2828d0eff52e95da30a5cb218208aabf42ecda19 100644
--- a/src/app/user/models/UserModelAbstract.php
+++ b/src/app/user/models/UserModelAbstract.php
@@ -25,13 +25,15 @@ abstract class UserModelAbstract
     public static function get(array $aArgs)
     {
         ValidatorModel::arrayType($aArgs, ['select', 'where', 'data', 'orderBy']);
+        ValidatorModel::intType($aArgs, ['limit']);
 
         $aUsers = DatabaseModel::select([
             'select'    => empty($aArgs['select']) ? ['*'] : $aArgs['select'],
             'table'     => ['users'],
-            'where'     => $aArgs['where'],
-            'data'      => $aArgs['data'],
-            'order_by'  => $aArgs['orderBy']
+            'where'     => empty($aArgs['where']) ? [] : $aArgs['where'],
+            'data'      => empty($aArgs['data']) ? [] : $aArgs['data'],
+            'order_by'  => empty($aArgs['orderBy']) ? [] : $aArgs['orderBy'],
+            'limit'     => empty($aArgs['limit']) ? 0 : $aArgs['limit']
         ]);
 
         return $aUsers;
diff --git a/src/core/controllers/AutoCompleteController.php b/src/core/controllers/AutoCompleteController.php
index 7b5ac7d67039a7c95fd2552dd32c24d852e737b7..c1175523b0e6e598c87299b391d52f4341eb77af 100644
--- a/src/core/controllers/AutoCompleteController.php
+++ b/src/core/controllers/AutoCompleteController.php
@@ -29,6 +29,8 @@ use User\models\UserModel;
 
 class AutoCompleteController
 {
+    const LIMIT = 50;
+
     public static function getContacts(Request $request, Response $response)
     {
         $data = $request->getQueryParams();
@@ -98,7 +100,8 @@ class AutoCompleteController
             'select'    => ['user_id', 'firstname', 'lastname'],
             'where'     => $requestData['where'],
             'data'      => $requestData['data'],
-            'orderBy'   => ['lastname']
+            'orderBy'   => ['lastname'],
+            'limit'     => self::LIMIT
         ]);
 
         $data = [];
@@ -144,31 +147,34 @@ class AutoCompleteController
                 'select'    => ['DISTINCT users.user_id', 'users.id', 'users.firstname', 'users.lastname'],
                 'table'     => ['users, users_entities'],
                 'where'     => $requestData['where'],
-                'data'      => $requestData['data']
-            ]);
-
-            $requestData = AutoCompleteController::getDataForRequest([
-                'search'        => $data['search'],
-                'fields'        => '(users.firstname ilike ? OR users.lastname ilike ?)',
-                'where'         => [
-                    'users_entities IS NULL',
-                    'users.user_id not in (?)',
-                    'users.status != ?',
-                    'users.enabled = ?'
-                ],
-                'data'          => [$excludedUsers, 'DEL', 'Y'],
-                'fieldsNumber'  => 2,
-            ]);
-
-            $usersNoEntities = DatabaseModel::select([
-                'select'    => ['users.id', 'users.user_id', 'users.firstname', 'users.lastname'],
-                'table'     => ['users', 'users_entities'],
-                'left_join' => ['users.user_id = users_entities.user_id'],
-                'where'     => $requestData['where'],
-                'data'      => $requestData['data']
+                'data'      => $requestData['data'],
+                'limit'     => self::LIMIT
             ]);
 
-            $users = array_merge($users, $usersNoEntities);
+            if (count($users) == self::LIMIT) {
+                $requestData = AutoCompleteController::getDataForRequest([
+                    'search'        => $data['search'],
+                    'fields'        => '(users.firstname ilike ? OR users.lastname ilike ?)',
+                    'where'         => [
+                        'users_entities IS NULL',
+                        'users.user_id not in (?)',
+                        'users.status != ?',
+                        'users.enabled = ?'
+                    ],
+                    'data'          => [$excludedUsers, 'DEL', 'Y'],
+                    'fieldsNumber'  => 2,
+                ]);
+
+                $usersNoEntities = DatabaseModel::select([
+                    'select'    => ['users.id', 'users.user_id', 'users.firstname', 'users.lastname'],
+                    'table'     => ['users', 'users_entities'],
+                    'left_join' => ['users.user_id = users_entities.user_id'],
+                    'where'     => $requestData['where'],
+                    'data'      => $requestData['data']
+                ]);
+
+                $users = array_merge($users, $usersNoEntities);
+            }
         } else {
             $requestData = AutoCompleteController::getDataForRequest([
                 'search'        => $data['search'],
@@ -179,10 +185,11 @@ class AutoCompleteController
             ]);
 
             $users = UserModel::get([
-                'select'    => ['user_id', 'firstname', 'lastname'],
+                'select'    => ['id', 'user_id', 'firstname', 'lastname'],
                 'where'     => $requestData['where'],
                 'data'      => $requestData['data'],
-                'orderBy'   => ['lastname']
+                'orderBy'   => ['lastname'],
+                'limit'     => self::LIMIT
             ]);
         }
 
@@ -229,7 +236,8 @@ class AutoCompleteController
             'table'     => ['users, usergroup_content, usergroups_services'],
             'where'     => $requestData['where'],
             'data'      => $requestData['data'],
-            'order_by'  => ['users.lastname']
+            'order_by'  => ['users.lastname'],
+            'limit'     => self::LIMIT
         ]);
 
         $data = [];
@@ -265,7 +273,8 @@ class AutoCompleteController
             'select'    => ['entity_id', 'entity_label', 'short_label'],
             'where'     => $requestData['where'],
             'data'      => $requestData['data'],
-            'orderBy'   => ['entity_label']
+            'orderBy'   => ['entity_label'],
+            'limit'     => self::LIMIT
         ]);
 
         $data = [];
diff --git a/test/AutocompleteControllerTest.php b/test/AutocompleteControllerTest.php
index cae0429ebbbe1954cda3a2088efed7786ce2ab3d..dd2b011ece6fe87099c53eb44a863d5ea4dde1c2 100644
--- a/test/AutocompleteControllerTest.php
+++ b/test/AutocompleteControllerTest.php
@@ -47,7 +47,12 @@ class AutocompleteControllerTest extends TestCase
         $environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'GET']);
         $request     = \Slim\Http\Request::createFromEnvironment($environment);
 
-        $response     = $autocompleteController->getUsers($request, new \Slim\Http\Response());
+        $aArgs = [
+            'search'    => 'bain'
+        ];
+        $fullRequest = $request->withQueryParams($aArgs);
+
+        $response     = $autocompleteController->getUsers($fullRequest, new \Slim\Http\Response());
         $responseBody = json_decode((string)$response->getBody());
 
         $this->assertInternalType('array', $responseBody);
@@ -69,7 +74,12 @@ class AutocompleteControllerTest extends TestCase
         $environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'GET']);
         $request     = \Slim\Http\Request::createFromEnvironment($environment);
 
-        $response     = $autocompleteController->getUsersForAdministration($request, new \Slim\Http\Response());
+        $aArgs = [
+            'search'    => 'bern',
+        ];
+        $fullRequest = $request->withQueryParams($aArgs);
+
+        $response     = $autocompleteController->getUsersForAdministration($fullRequest, new \Slim\Http\Response());
         $responseBody = json_decode((string)$response->getBody());
 
         $this->assertInternalType('array', $responseBody);
@@ -90,7 +100,12 @@ class AutocompleteControllerTest extends TestCase
         $environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'GET']);
         $request     = \Slim\Http\Request::createFromEnvironment($environment);
 
-        $response     = $autocompleteController->getUsersForVisa($request, new \Slim\Http\Response());
+        $aArgs = [
+            'search'    => 'dau',
+        ];
+        $fullRequest = $request->withQueryParams($aArgs);
+
+        $response     = $autocompleteController->getUsersForVisa($fullRequest, new \Slim\Http\Response());
         $responseBody = json_decode((string)$response->getBody());
 
         $this->assertInternalType('array', $responseBody);
@@ -112,7 +127,12 @@ class AutocompleteControllerTest extends TestCase
         $environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'GET']);
         $request     = \Slim\Http\Request::createFromEnvironment($environment);
 
-        $response     = $autocompleteController->getEntities($request, new \Slim\Http\Response());
+        $aArgs = [
+            'search'    => 'mai',
+        ];
+        $fullRequest = $request->withQueryParams($aArgs);
+
+        $response     = $autocompleteController->getEntities($fullRequest, new \Slim\Http\Response());
         $responseBody = json_decode((string)$response->getBody());
 
         $this->assertInternalType('array', $responseBody);