diff --git a/src/Plugin/Field/FieldType/DynamicEntityReferenceItem.php b/src/Plugin/Field/FieldType/DynamicEntityReferenceItem.php
index 8847dfa..2aa16b2 100644
--- a/src/Plugin/Field/FieldType/DynamicEntityReferenceItem.php
+++ b/src/Plugin/Field/FieldType/DynamicEntityReferenceItem.php
@@ -130,15 +130,16 @@ class DynamicEntityReferenceItem extends ConfigurableEntityReferenceItem {
    * @todo update
    */
   public function settingsForm(array &$form, FormStateInterface $form_state, $has_data) {
+    // @todo inject this.
     $labels = \Drupal::entityManager()->getEntityTypeLabels(TRUE);
 
     $element['excluded_entity_type_ids'] = array(
-      '#type' => 'checkboxes',
+      '#type' => 'select',
       '#title' => t('Items to exclude'),
-      // @todo inject this.
       '#options' => $labels['Content'],
       '#default_value' => $this->getSetting('excluded_entity_type_ids'),
       '#disabled' => $has_data,
+      '#multiple' => TRUE,
     );
 
     return $element;
diff --git a/src/Plugin/Field/FieldWidget/DynamicEntityReferenceWidget.php b/src/Plugin/Field/FieldWidget/DynamicEntityReferenceWidget.php
index 6ca88b4..0d82a9c 100644
--- a/src/Plugin/Field/FieldWidget/DynamicEntityReferenceWidget.php
+++ b/src/Plugin/Field/FieldWidget/DynamicEntityReferenceWidget.php
@@ -60,8 +60,7 @@ class DynamicEntityReferenceWidget extends AutocompleteWidget {
     // @todo inject this.
     $labels = \Drupal::entityManager()->getEntityTypeLabels(TRUE);
     $options = $labels['Content'];
-    $excluded_entity_type_ids = array_filter($items->getSetting('excluded_entity_type_ids'));
-    $available = array_diff_key($options, $excluded_entity_type_ids ?: array());
+    $available = array_diff_key($options, $items->getSetting('excluded_entity_type_ids') ?: array());
     $entity_type = array(
       '#type' => 'select',
       '#options' => $available,
diff --git a/src/Tests/DynamicEntityReferenceTest.php b/src/Tests/DynamicEntityReferenceTest.php
index cd1c8ea..7ba175f 100644
--- a/src/Tests/DynamicEntityReferenceTest.php
+++ b/src/Tests/DynamicEntityReferenceTest.php
@@ -77,7 +77,7 @@ class DynamicEntityReferenceTest extends WebTestBase {
     $this->drupalPostForm(NULL, $edit, t('Save'));
     $this->drupalPostForm(NULL, array(
       'field[cardinality]' => '-1',
-      'field[settings][excluded_entity_type_ids][user]' => 'user',
+      'field[settings][excluded_entity_type_ids][]' => 'user',
     ), t('Save field settings'));
     $this->assertFieldByName('default_value_input[field_foobar][0][target_type]');
     $this->assertFieldByXPath(CssSelector::toXPath('select[name="default_value_input[field_foobar][0][target_type]"] > option[value=entity_test]'), 'entity_test');
@@ -86,8 +86,8 @@ class DynamicEntityReferenceTest extends WebTestBase {
     $this->assertRaw(t('Saved %name configuration', array('%name' => 'Foobar')));
     $excluded_entity_type_ids = FieldStorageConfig::loadByName('entity_test', 'field_foobar')
       ->getSetting('excluded_entity_type_ids');
-    $this->assertIdentical($excluded_entity_type_ids['entity_test'], 0);
-    $this->assertIdentical($excluded_entity_type_ids['user'], 'user');
+    $this->assertNotNull($excluded_entity_type_ids);
+    $this->assertIdentical(array_keys($excluded_entity_type_ids), array('user'));
   }
 
   /**
