diff --git a/misc/states.js b/misc/states.js
index b01bc2b..66b7808 100644
--- a/misc/states.js
+++ b/misc/states.js
@@ -362,11 +362,12 @@ states.State.prototype = {
 
   $(document).bind('state:required', function(e) {
     if (e.trigger) {
+      var label = 'label' + $(e.target).attr('id') ? '[for=' + $(e.target).attr('id') + ']' : '';
       if (e.value) {
-        $(e.target).closest('.form-item, .form-wrapper').find('label').append('<abbr class="form-required" title="' + Drupal.t('This field is required.') + '">*</abbr>');
+        $(e.target).closest('.form-item, .form-wrapper').find(label).append('<abbr class="form-required" title="' + Drupal.t('This field is required.') + '">*</abbr>');
       }
       else {
-        $(e.target).closest('.form-item, .form-wrapper').find('label .form-required').remove();
+        $(e.target).closest('.form-item, .form-wrapper').find(label + ' .form-required').remove();
       }
     }
   });
