diff --git a/misc/states.js b/misc/states.js
index 4b4f1d5..50cfced 100644
--- a/misc/states.js
+++ b/misc/states.js
@@ -19,11 +19,14 @@ Drupal.behaviors.states = {
     var $context = $(context);
     for (var selector in settings.states) {
       for (var state in settings.states[selector]) {
-        new states.Dependent({
-          element: $context.find(selector),
-          state: states.State.sanitize(state),
-          constraints: settings.states[selector][state]
-        });
+        var element = $(selector).once('states-' + state);
+        if (element.length) {
+          new states.Dependent({
+            element: element,
+            state: states.State.sanitize(state),
+            constraints: settings.states[selector][state]
+          });
+        }
       }
     }
 
