Index: freelinking.module
===================================================================
RCS file: /cvs/drupal/contributions/modules/freelinking/freelinking.module,v
retrieving revision 1.32.2.15
diff -u -u -p -r1.32.2.15 freelinking.module
--- freelinking.module	20 May 2009 15:23:39 -0000	1.32.2.15
+++ freelinking.module	26 Aug 2009 21:38:16 -0000
@@ -304,6 +304,21 @@ function freelinking_nodeapi(&$node, $op
     case 'insert':
       _freelinking_do_filtering($node->body, TRUE);
       break;
+    case 'update index':
+      $filters = filter_list_format($node->format);
+      if (isset($filters['freelinking/0'])) {
+        $text = freelinking_filter('process', 0, -1, $node->body);
+        global $base_path;
+        if (preg_match_all(',<a href="'. $base_path .'freelinking/([^"]*)" class="freelinking">,i', $text, $matches)) {
+          foreach ($matches[1] as $thetitle) {
+            if ($nid = _freelinking_exists($thetitle)) {
+              $output .= '<a href="'. $base_path .'node/'. $nid .'">'. urldecode($thetitle) .'</a>';
+            }
+          }
+          return $output;
+        }
+      }
+      break;
   } // endswitch $op
 } // endfunction freelinking_nodeapi
 
@@ -463,7 +478,7 @@ function _freelinking_do_filtering($text
          $store = FALSE;
       }
       else {
-        $replacement = l(html_entity_decode($phrase), 'freelinking/' . rawurlencode($freelink), array('attributes' => array('class' => 'freelinking')));
+        $replacement = l(html_entity_decode($phrase), 'freelinking/' . $freelink, array('attributes' => array('class' => 'freelinking')));
       }
     }
 
