--- profile.module.orig	2010-09-15 18:41:48.603333341 +0200
+++ profile.module	2010-09-15 18:42:06.363333340 +0200
@@ -226,12 +226,16 @@
 }
 
 function profile_load_profile(&$user) {
+  if ($user->profile_loaded) {
+    return;
+  }
   $result = db_query('SELECT f.name, f.type, v.value FROM {profile_fields} f INNER JOIN {profile_values} v ON f.fid = v.fid WHERE uid = %d', $user->uid);
   while ($field = db_fetch_object($result)) {
     if (empty($user->{$field->name})) {
       $user->{$field->name} = _profile_field_serialize($field->type) ? unserialize($field->value) : $field->value;
     }
   }
+  $user->profile_loaded = TRUE;
 }
 
 function profile_save_profile(&$edit, &$user, $category, $register = FALSE) {
