Index: modules/node/node.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/node/node.module,v
retrieving revision 1.967
diff -u -p -r1.967 node.module
--- modules/node/node.module	26 May 2008 17:12:55 -0000	1.967
+++ modules/node/node.module	26 Jun 2008 12:26:23 -0000
@@ -782,13 +782,13 @@ function node_load($param = array(), $re
   if ($node && $node->nid) {
     // Call the node specific callback (if any) and piggy-back the
     // results to the node or overwrite some values.
-    if ($extra = node_invoke($node, 'load')) {
+    if ($extra = node_invoke($node, 'load', $reset)) {
       foreach ($extra as $key => $value) {
         $node->$key = $value;
       }
     }
 
-    if ($extra = node_invoke_nodeapi($node, 'load')) {
+    if ($extra = node_invoke_nodeapi($node, 'load', $reset)) {
       foreach ($extra as $key => $value) {
         $node->$key = $value;
       }
Index: modules/taxonomy/taxonomy.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/taxonomy/taxonomy.module,v
retrieving revision 1.422
diff -u -p -r1.422 taxonomy.module
--- modules/taxonomy/taxonomy.module	9 Jun 2008 07:28:35 -0000	1.422
+++ modules/taxonomy/taxonomy.module	26 Jun 2008 12:26:21 -0000
@@ -607,9 +607,13 @@ function taxonomy_node_get_terms_by_voca
 /**
  * Find all terms associated with the given node, ordered by vocabulary and term weight.
  */
-function taxonomy_node_get_terms($node, $key = 'tid') {
+function taxonomy_node_get_terms($node, $key = 'tid', $reset = FALSE) {
   static $terms;
 
+  if ($reset && isset($terms[$node->vid]) && isset($terms[$node->vid][$key])) {
+    unset($terms[$node->vid][$key]);
+  }
+
   if (!isset($terms[$node->vid][$key])) {
     $result = db_query(db_rewrite_sql('SELECT t.* FROM {term_node} r INNER JOIN {term_data} t ON r.tid = t.tid INNER JOIN {vocabulary} v ON t.vid = v.vid WHERE r.vid = %d ORDER BY v.weight, t.weight, t.name', 't', 'tid'), $node->vid);
     $terms[$node->vid][$key] = array();
@@ -1142,7 +1146,7 @@ function taxonomy_render_nodes($result) 
 function taxonomy_nodeapi($node, $op, $arg = 0) {
   switch ($op) {
     case 'load':
-      $output['taxonomy'] = taxonomy_node_get_terms($node);
+      $output['taxonomy'] = taxonomy_node_get_terms($node, 'tid', $arg);
       return $output;
 
     case 'insert':
