diff --git a/extension/Classes/Core/Save.php b/extension/Classes/Core/Save.php
index 5e9cca3c8139ef44797e325ffb5213fd8bc40255..4aa8efff81bebad23365bea5839b5abb67866bb6 100644
--- a/extension/Classes/Core/Save.php
+++ b/extension/Classes/Core/Save.php
@@ -373,6 +373,7 @@ class Save {
 
         // Create glue records
         foreach ($result as $id => $value) {
+
             $this->store->setVar(VAR_TAG_ID, $id, STORE_VAR);
             $this->store->setVar(VAR_TAG_VALUE, $value, STORE_VAR);
 
diff --git a/extension/Classes/Core/Store/FillStoreForm.php b/extension/Classes/Core/Store/FillStoreForm.php
index 144726696bd7b5327eed3ff47328da9c2544f46d..7ded5a153c78fe5938980be6c5bea324c0077e26 100644
--- a/extension/Classes/Core/Store/FillStoreForm.php
+++ b/extension/Classes/Core/Store/FillStoreForm.php
@@ -295,12 +295,19 @@ class FillStoreForm {
                     (isset($formElement[FE_PROCESS_READ_ONLY]) && $formElement[FE_PROCESS_READ_ONLY] != '0')) {
 
                     if (HelperFormElement::booleParameter($formElement[FE_TYPEAHEAD_TAG] ?? '-')) {
+                        // TypeAhead Tags received as JSON key/value
+                        $cntNew = 0;
+
                         // TYPEAHEAD_TAG will be delivered as JSON. Check and sanitize every key/value pair.
                         $arr = json_decode($clientValues[$clientFieldName], true);
                         $arrTmp = array();
                         foreach ($arr as $row) {
 
                             $arrKey = $this->doValue($formElement, $formMode, $row['key']);
+                            // New Tags always get '0' >> make them uniq by adding a counter.
+                            if ($arrKey == "0") {
+                                $arrKey = "0-" . ++$cntNew;
+                            }
                             $arrValue = $this->doValue($formElement, $formMode, $row['value']);
                             $arrTmp[$arrKey] = $arrValue;
                         }