--- views_handler_field_contact_link.inc	2011-02-21 10:58:48.000000000 +0100
+++ views_handler_field_contact_link.inc.b	2011-02-21 11:02:57.000000000 +0100
@@ -31,14 +31,7 @@ class views_handler_field_contact_link e
   // We must override the access method in the parent class, as that requires
   // the 'access user profiles' permission, which the contact form does not.
   function access() {
-    global $user;
-
-    // Only registered users can view other registered user's contact page.
-    if (empty($user->uid)) {
-      return FALSE;
-    }
-
-    return TRUE;
+    return user_access('access user contact forms');
   }
 
   function render_link($data, $values) {
@@ -57,16 +50,16 @@ class views_handler_field_contact_link e
     // Check access when we pull up the user account so we know
     // if the user has made the contact page available.
     $menu_item = menu_get_item("user/$uid/contact");
-    if (!$menu_item['access'] || empty($account->contact)) {
+    if (!$menu_item['access'] || empty($account->data['contact'])) {
       return;
     }
 
+    $this->options['alter']['make_link'] = TRUE;
     $this->options['alter']['path'] = 'user/'. $account->uid .'/contact';
     $this->options['alter']['attributes'] = array('title' => t('Contact %user', array('%user' => $account->name)));
 
     if ($this->options['link_display'] == 'icon') {
       $text = theme('image', array('path' => 'misc/forum-new.png'));
-      $this->options['alter']['html'] = TRUE;
     }
     else {
       $text = $this->options['text'];
