--- openid_cp_field.module	2009-06-29 17:02:14.000000000 +0300
+++ openid_cp_field_m.module	2010-01-14 16:26:31.625000000 +0200
@@ -418,7 +418,14 @@ function _openid_cp_field_get_value($fie
   }
   if (isset($profile->{$mapping[$field]})) {
     if (is_array($profile->{$mapping[$field]})) {
-      return $profile->{$mapping[$field]}[0]['value'];
+      //Check if it's a CCK link field
+      if (isset($profile->{$mapping[$field]}[0]['url'])) {
+        return $profile->{$mapping[$field]}[0]['url'];
+      }
+      //Check if it's a CCK field
+      else {
+          return $profile->{$mapping[$field]}[0]['value'];
+      }
     }
     else {
       return $profile->{$mapping[$field]};
@@ -438,8 +445,14 @@ function _openid_cp_field_populate_field
   if (isset($response[$prefix . $short_name])) {
     $field_value = $response[$prefix . $short_name];
     if (!empty($field_value)) {
-      // Check if it's a CCK field or not.
-      if (strstr($target, 'field_') && module_exists('content_profile')) {
+      //Check if it's a CCK link field
+      if (module_exists('content')) {
+        $fields = content_fields($target);
+        if ($fields['type'] == 'link') {
+          return array(0 => array('url' => $field_value));
+        }
+      // Check if it's a CCK field.
+      } else if (strstr($target, 'field_') && module_exists('content_profile')) {
         return array(0 => array('value' => $field_value));
       }
       else {
