diff --git a/include/ajax.forms.php b/include/ajax.forms.php
index d9e61dbd5312a9d5df4d5ca70e92fd25bc2b6025..e61ddec81fd5eb0bed60c2a024272acd10ad5300 100644
--- a/include/ajax.forms.php
+++ b/include/ajax.forms.php
@@ -163,7 +163,8 @@ class DynamicFormsAjaxAPI extends AjaxController {
             $item->extra = $basic['extra'];
             $item->value = $basic['value'];
 
-            if ($_item = DynamicListItem::lookup(array('value'=>$item->value)))
+            if ($_item = DynamicListItem::lookup(array(
+                            'list_id' => $list->getId(), 'value'=>$item->value)))
                 if ($_item && $_item->id != $item->id)
                     $item_form->getField('value')->addError(
                         __('Value already in use'));
@@ -218,11 +219,12 @@ class DynamicFormsAjaxAPI extends AjaxController {
 
         if ($_POST && ($valid = $item_form->isValid())) {
             $data = $item_form->getClean();
-            if ($_item = DynamicListItem::lookup(array('value'=>$data['value'])))
+            if ($_item = DynamicListItem::lookup(array(
+                            'list_id' => $list->getId(), 'value'=>$data['value'])))
                 if ($_item && $_item->id)
                     $item_form->getField('value')->addError(
                         __('Value already in use'));
-            $data['list_id'] = $list_id;
+            $data['list_id'] = $list->getId();
             $item = DynamicListItem::create($data);
             if ($item->save() && $item->setConfiguration())
                 Http::response(201, $this->encode(array('success' => true)));