diff --git a/modules/select2_bef/src/Plugin/views/exposed_form/BetterExposedFilters.php b/modules/select2_bef/src/Plugin/views/exposed_form/BetterExposedFilters.php
index f88cd4b..939006d 100644
--- a/modules/select2_bef/src/Plugin/views/exposed_form/BetterExposedFilters.php
+++ b/modules/select2_bef/src/Plugin/views/exposed_form/BetterExposedFilters.php
@@ -86,7 +86,8 @@ class BetterExposedFilters extends BetterExposedFiltersOrigin {
           ];
           $bef[$name]['more_options']['preload_count'] = [
             '#type'          => 'textfield',
-            '#title'         => $this->t('Number of entries will be preloaded'),
+            '#title'         => $this->t('Maximum number of entries that will be pre-loaded'),
+            '#description'   => $this->t('If maximum number is not specified then all entries will be preloaded'),
             '#default_value' => $settings[$name]['more_options']['preload_count'],
             '#states'        => [
               'visible' => [
diff --git a/select2boxes.module b/select2boxes.module
index 25f0672..72fd2ed 100644
--- a/select2boxes.module
+++ b/select2boxes.module
@@ -73,7 +73,8 @@ function select2boxes_field_widget_third_party_settings_form(WidgetInterface $pl
     $field_name = $field_definition->getName();
     $element['preload_count'] = [
       '#type'          => 'textfield',
-      '#title'         => t('Number of entries will be pre-loaded'),
+      '#title'         => t('Maximum number of entries that will be pre-loaded'),
+      '#description'   => t('If maximum number is not specified then all entries will be preloaded'),
       '#default_value' => isset($settings['preload_count']) ? $settings['preload_count'] : '',
       '#states'        => [
         'visible' => [
@@ -127,8 +128,11 @@ function select2boxes_field_widget_settings_summary_alter(&$summary, $context) {
   $settings = $widget->getThirdPartySettings('select2boxes');
   if ($widget->getPluginId() == 'select2boxes_autocomplete_multi') {
     if (!empty($settings) && $settings['enable_preload'] == '1') {
+      $count = ($settings['preload_count'] || $settings['preload_count'] == '0')
+        ? $settings['preload_count']
+        : 'all';
       $summary[] = t('Preloading enabled');
-      $summary[] = t('Number of preloaded entries: @count', ['@count' => $settings['preload_count']]);
+      $summary[] = t('Number of preloaded entries: @count', ['@count' => $count]);
     }
     else {
       $summary[] = t('Preloading disabled');
diff --git a/src/PreloadBuildTrait.php b/src/PreloadBuildTrait.php
index e9ca411..fc86756 100644
--- a/src/PreloadBuildTrait.php
+++ b/src/PreloadBuildTrait.php
@@ -12,8 +12,8 @@ trait PreloadBuildTrait {
   /**
    * Build preloaded entries list.
    *
-   * @param int $count
-   *   Number of entries will be preloaded.
+   * @param string $count
+   *   Number of entries will be preloaded, or empty string to load all.
    * @param array $settings
    *   Field settings array.
    * @param string $target_type
@@ -25,7 +25,7 @@ trait PreloadBuildTrait {
   protected function buildPreLoaded($count, $settings, $target_type) {
     // Return empty array if the count is less than 1.
     $entities = [];
-    if ($count <= 0) {
+    if ($count <= 0 && $count != '') {
       return $entities;
     }
     // Prepare required keys, from the entity type definitions.
@@ -42,7 +42,9 @@ trait PreloadBuildTrait {
       $bundles = array_values($settings['target_bundles']);
       $select->condition($bundle_key, $bundles, 'IN');
     }
-    $entities = $select->range(0, $count)->execute()->fetchAllKeyed();
+    $entities = !$count
+      ? $entities = $select->execute()->fetchAllKeyed()
+      : $select->range(0, $count)->execute()->fetchAllKeyed();
     // Sort preloaded entities.
     asort($entities);
     return $entities;
diff --git a/tests/src/FunctionalJavascript/Select2BoxesTests.php b/tests/src/FunctionalJavascript/Select2BoxesTests.php
index dce9053..dbe4015 100644
--- a/tests/src/FunctionalJavascript/Select2BoxesTests.php
+++ b/tests/src/FunctionalJavascript/Select2BoxesTests.php
@@ -273,4 +273,55 @@ class Select2BoxesTests extends Select2BoxesTestsBase {
     $this->assertFalse($search_input->hasClass('select2-search--hide'));
   }
 
+  /**
+   * Test unlimited preloading behavior.
+   */
+  public function testUnlimitedPreloading() {
+    // Firstly generate a fake content.
+    $this->generateDummyTerms('tags', 10);
+    // Go the the "Manage Form Display" form.
+    $this->drupalGet(static::$manageFormDisplayPath);
+    $this->assertSession()->statusCodeEquals(200);
+    // Set multiple widget for the Tags field.
+    $this->minkSession
+      ->getPage()
+      ->find('xpath', '//select[@name="fields[field_tags][type]"]')
+      ->setValue(static::$pluginIds[2]);
+    $this->minkSession->wait(2000);
+    // Check for the summary text about preloading option.
+    $this->assertTextHelper('Preloading disabled', FALSE);
+    // Open the settings form for the Tags field.
+    $this->click('input[name="field_tags_settings_edit"]');
+    $this->minkSession->wait(2000);
+    // Enable preloading via checking the checkbox field.
+    $this->minkSession
+      ->getPage()
+      ->checkField('fields[field_tags][settings_edit_form][third_party_settings][select2boxes][enable_preload]');
+    $this->minkSession->wait(500);
+    // Do not specify the preload count value!
+    // Submit the settings form.
+    $this->click('input[name="field_tags_plugin_settings_update"]');
+    $this->minkSession->wait(2000);
+    // Check for summary text updates.
+    $this->assertTextHelper('Preloading enabled', FALSE);
+    $this->assertTextHelper('Number of preloaded entries: all', FALSE);
+    // Submit the entity form display settings.
+    $this->saveForm();
+    $this->minkSession->wait(2000);
+    $this->assertSession()->statusCodeEquals(200);
+    // Go to the node's creation form.
+    $this->drupalGet(static::$nodeAddPath);
+    $this->assertSession()->statusCodeEquals(200);
+
+    // Trigger the opening dropdown via click on the search input field.
+    $this->click('input[class="select2-search__field"]');
+    $this->minkSession->wait(1000);
+    // Find the list of results element on the page.
+    $select = $this->getFieldById('select2-edit-field-tags-results');
+    $this->assertNotNull($select);
+    // Check if the number of results is equals
+    // to the 10 rows (as was generated).
+    $this->assertEquals(10, count($select->findAll('xpath', '//li')));
+  }
+
 }
diff --git a/tests/src/FunctionalJavascript/Select2BoxesTestsBase.php b/tests/src/FunctionalJavascript/Select2BoxesTestsBase.php
index 248ab77..f9c46af 100644
--- a/tests/src/FunctionalJavascript/Select2BoxesTestsBase.php
+++ b/tests/src/FunctionalJavascript/Select2BoxesTestsBase.php
@@ -167,7 +167,7 @@ class Select2BoxesTestsBase extends JavascriptTestBase {
    */
   protected function generateDummyTerms($vid, $count) {
     $terms = [];
-    for ($i = 0; $i <= $count; $i++) {
+    for ($i = 0; $i < $count; $i++) {
       $terms[$i] = Term::create([
         'vid'  => $vid,
         'name' => $this->randomString(4),
