Index: link.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/link/link.module,v
retrieving revision 1.20.2.40
diff -u -p -r1.20.2.40 link.module
--- link.module	20 Apr 2008 05:59:03 -0000	1.20.2.40
+++ link.module	3 Jun 2008 17:35:00 -0000
@@ -564,6 +564,10 @@ function link_field_formatter_info() {
       'label' => t('Label, as link with label as title'),
       'field types' => array('link'),
     ),
+    'label_separate' => array(
+      'label' => t('Label, as link with separate label'),
+      'field types' => array('link'),
+    ),
   );
 }
 
@@ -633,6 +637,12 @@ function link_field_formatter($field, $i
   elseif ($formatter == 'label') {
     $output = l(t($field['widget']['label']), $url, $attributes, $query, $fragment);
   }
+  // Build the link using the widget label as separate title.
+  elseif ($formatter == 'label_separate') {
+    $class = (!empty($attributes['class']) ? ' '. $attributes['class'] : '');
+    $output .= '<div class="link-title'. $class .'">'. ($field['title'] == 'value' && trim($field['title_value']) ? $field['title_value'] : $item['title']) .'</div>';
+    $output .= '<div class="link-url'. $class .'">'. l($url, $url, $attributes, $query, $fragment) .'</div>';
+  }
   // Build the link with a title.
   elseif (strlen(trim($item['title'])) || ($field['title'] == 'value' && strlen(trim($field['title_value'])))) {
     // Use the title defined at the field level.
