diff --git a/link.module b/link.module
index 00d47599110d554070ffbdb0424770744c28e70a..f9ccce943d60e9feff6d59629375acef8fac7f90 100644
--- a/link.module
+++ b/link.module
@@ -1193,6 +1193,19 @@ function link_field_process($element, $form_state, $complete_form) {
   return $element;
 }
 
+/**
+ * Implements template_preprocess_form_element_label().
+ */
+function link_preprocess_form_element_label(&$vars) {
+  $element = &$vars['element'];
+  if ('link_field' == $element['#type']) {
+    if (isset($element['url']) && !isset($element['title'])) {
+      // Link label directly to the URL field.
+      $element['#id'] .= '-url';
+    }
+  }
+}
+
 /**
  * Implements hook_field_formatter_info().
  */