--- link.module	2010-10-17 23:46:47.000000000 -0400
+++ link-fixed.module	2010-10-21 12:59:08.000000000 -0400
@@ -469,10 +469,10 @@ function _link_sanitize(&$item, $delta, 
   }
 
   // Replace URL tokens.
-  if (module_exists('token') && $field['enable_tokens']) {
+  if (module_exists('token') && $field['settings']['enable_tokens']) {
     // Load the node if necessary for nodes in views.
     $token_node = isset($node->nid) ? node_load($node->nid) : $node;
-    $item['url'] = token_replace($item['url'], 'node', $token_node);
+    $item['url'] = token_replace($item['url'], array('node' => $token_node));
   }
 
   $type = link_validate_url($item['url']);
@@ -503,14 +503,14 @@ function _link_sanitize(&$item, $delta, 
     $item['title'] = $field['settings']['title_value'];
   }
   // Use the title defined by the user at the widget level.
-  else {
+  else if (isset($item['title'])) {
     $title = $item['title'];
   }
   // Replace tokens.
-  if (module_exists('token') && ($field['title'] == 'value' || $field['enable_tokens'])) {
+  if (module_exists('token') && $field['settings']['title'] == 'value' && $field['settings']['enable_tokens']) {
     // Load the node if necessary for nodes in views.
     $token_node = isset($node->nid) ? node_load($node->nid) : $node;
-    $title = filter_xss(token_replace($title, 'node', $token_node), array('b', 'br', 'code', 'em', 'i', 'img', 'span', 'strong', 'sub', 'sup', 'tt', 'u'));
+    $title = filter_xss(token_replace($title, array('node' => $token_node)), array('b', 'br', 'code', 'em', 'i', 'img', 'span', 'strong', 'sub', 'sup', 'tt', 'u'));
     $item['html'] = TRUE;
   }
   $item['display_title'] = empty($title) ? $item['display_url'] : $title;
