=== modified file 'modules/filter/filter.module'
--- modules/filter/filter.module	2009-03-08 21:25:17 +0000
+++ modules/filter/filter.module	2009-03-14 16:39:51 +0000
@@ -619,6 +619,8 @@ function filter_filter($op, $delta = 0, 
           return t('Corrects faulty and chopped off HTML in postings.');
         case 4:
           return t('Escapes all HTML tags, so they will be visible instead of being effective.');
+        case 5:
+          return t('Turns [url:node/1234] into its real, site specific URL equivalent.');
         default:
           return;
       }
@@ -635,6 +637,8 @@ function filter_filter($op, $delta = 0, 
           return _filter_htmlcorrector($text);
         case 4:
           return trim(check_plain($text));
+        case 5:
+          return _filter_convert_url($text);
         default:
           return $text;
       }
@@ -853,6 +857,13 @@ function _filter_url_trim($text, $length
   return $text;
 }
 
+function _filter_convert_url($text) {
+  // Change '[url:X]' to the URL to the site.
+  // Make some exchanges. The strtr is because url() translates $ into %24
+  // but we need to change it back for the regex replacement.
+  return preg_replace('/\[url:([^"]+)\]/', str_replace('%24', '$', url('$1')), $content);
+}
+
 /**
  * Convert line breaks into <p> and <br> in an intelligent fashion.
  * Based on: http://photomatt.net/scripts/autop

