diff --git a/src/WidgetBase.php b/src/WidgetBase.php
index a7c8fb7..916d3cb 100644
--- a/src/WidgetBase.php
+++ b/src/WidgetBase.php
@@ -311,7 +311,13 @@ abstract class WidgetBase extends PluginBase implements WidgetInterface, Contain
    */
   protected function selectEntities(array $entities, FormStateInterface $form_state) {
     $selected_entities = &$form_state->get(['entity_browser', 'selected_entities']);
-    $selected_entities = array_merge($selected_entities, $entities);
+    $storage = $form_state->getStorage();
+    if (isset($storage['entity_browser']['validators']['cardinality']) && $storage['entity_browser']['validators']['cardinality']['cardinality'] == 1) {
+      $selected_entities = $entities;
+    }
+    else {
+      $selected_entities = array_merge($selected_entities, $entities);
+    }
 
     $this->eventDispatcher->dispatch(
       Events::SELECTED,
