Index: user_terms.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/user_terms/user_terms.module,v
retrieving revision 1.1.2.30
diff -u -r1.1.2.30 user_terms.module
--- user_terms.module	8 Jul 2010 20:09:54 -0000	1.1.2.30
+++ user_terms.module	18 Oct 2010 19:33:51 -0000
@@ -97,19 +97,25 @@
  *   The account from which data is loaded.
  */
 function user_terms_load_profile(&$account) {
+  static $user_terms = array();
+  if (isset($user_terms[$account->uid])) {
+    $account->user_terms = $user_terms[$account->uid];
+    return;
+  }
+
   $terms  = array();
   $query = "SELECT u.tid, t.vid, t.name FROM {term_user} u 
-              INNER JOIN {term_data} t ON t.tid = u.tid 
-              INNER JOIN {vocabulary} v ON t.vid = v.vid 
-              WHERE u.uid = %d
-              ORDER BY v.weight, t.weight, t.name";
+    INNER JOIN {term_data} t ON t.tid = u.tid 
+    INNER JOIN {vocabulary} v ON t.vid = v.vid 
+    WHERE u.uid = %d
+    ORDER BY v.weight, t.weight, t.name";
   $result = db_query($query, $account->uid);
 
   while ($term = db_fetch_array($result)) {
     $terms[$term['tid']] = $term;
   }
 
-  $account->user_terms = $terms;
+  $user_terms[$account->uid] = $account->user_terms = $terms;
 }
 
