diff --git a/core/misc/states.js b/core/misc/states.js
index 30b63ba..1004e84 100644
--- a/core/misc/states.js
+++ b/core/misc/states.js
@@ -503,11 +503,13 @@ $(document).bind('state:disabled', function(e) {
 
 $(document).bind('state:required', function(e) {
   if (e.trigger) {
+    var label = 'label' + e.target.id ? '[for=' + e.target.id + ']' : '';
+    var $targetLabel = $(e.target).closest('.form-item, .form-wrapper').find(label);
     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>');
+      $targetLabel.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();
+      $targetLabel.find('.form-required').remove();
     }
   }
 });
