diff --git a/core/misc/states.js b/core/misc/states.js
index abdfbf8..ce3bc9d 100644
--- a/core/misc/states.js
+++ b/core/misc/states.js
@@ -516,8 +516,9 @@
 
   $(document).on('state:required', function (e) {
     if (e.trigger) {
+      var label = 'label' + (e.target.id ? '[for=' + e.target.id + ']' : '');
       if (e.value) {
-        var $label = $(e.target).attr({ 'required': 'required', 'aria-required': 'aria-required' }).closest('.form-item, .form-wrapper').find('label');
+        var $label = $(e.target).attr({ 'required': 'required', 'aria-required': 'aria-required' }).closest('.form-item, .form-wrapper').find(label);
         // Avoids duplicate required markers on initialization.
         if (!$label.find('.form-required').length) {
           $label.append(Drupal.theme('requiredMarker'));
