--- instant_search.module	2011-03-01 19:06:46.000000000 +0300
+++ instant_search.module	2011-03-01 19:06:03.000000000 +0300
@@ -9,16 +9,12 @@
  * Implementation of hook_exit().
  */
 function instant_search_exit() {
-    global $update_node_index;
+    global $index_updated;
     // we only run the indexer if a node has been inserted or updated in the current request
-    if($update_node_index) {
+    if($index_updated) {
       // Store the maximum possible comments per thread (used for ranking by reply count)
       variable_set('node_cron_comments_scale', 1.0 / max(1, db_result(db_query('SELECT MAX(comment_count) FROM {node_comment_statistics}'))));
       variable_set('node_cron_views_scale', 1.0 / max(1, db_result(db_query('SELECT MAX(totalcount) FROM {node_counter}'))));
-
-      // Index node
-      _node_index_node($update_node_index);
-      
       search_update_totals();
     }
 }
@@ -31,8 +27,13 @@
     case 'insert':
     case 'update':
       // when inserting or updating a node, let's set a global variable to let hook_exit now it will have to run the indexer
-      global $update_node_index;
-      $update_node_index = $node;
+      global $index_updated;
+      $index_updated = true;
+
+      // By calling with third parameter we clear node_load cache
+      node_load(null,null,true);
+      // now, after cache is cleared, FRESH version of node gets indexed
+      _node_index_node($node);
       break;
   }
 }
