diff -urpN pearwiki_filter/pear_override/parse/Ignoretoken.php pearwiki_filter_new/pear_override/parse/Ignoretoken.php
--- pearwiki_filter/pear_override/parse/Ignoretoken.php	1969-12-31 19:00:00.000000000 -0500
+++ pearwiki_filter_new/pear_override/parse/Ignoretoken.php	2008-07-21 07:45:04.000000000 -0400
@@ -0,0 +1,16 @@
+<?php
+
+class Text_Wiki_Parse_Ignoretoken extends Text_Wiki_Parse {
+
+  function Text_Wiki_Parse_Ignoretoken(&$obj) {
+    global $pearwiki_current_format;
+    $this->regex = '/\[('.implode('|',explode(' ',pearwiki_filter_ignore_tokens($pearwiki_current_format))).')([^\]]*)?(\](.*)\[\/\1\]|\])/Ums';
+    $this->Text_Wiki_Parse($obj);
+  }
+
+  function process(&$matches)
+  {
+    $options = array('text' => $matches[0]);
+    return $this->wiki->addToken($this->rule, $options);
+  }
+}
diff -urpN pearwiki_filter/pear_override/render/Xhtml/Ignoretoken.php pearwiki_filter_new/pear_override/render/Xhtml/Ignoretoken.php
--- pearwiki_filter/pear_override/render/Xhtml/Ignoretoken.php	1969-12-31 19:00:00.000000000 -0500
+++ pearwiki_filter_new/pear_override/render/Xhtml/Ignoretoken.php	2008-07-21 07:45:04.000000000 -0400
@@ -0,0 +1,22 @@
+<?php
+
+class Text_Wiki_Render_Xhtml_Ignoretoken extends Text_Wiki_Render {
+
+    /**
+    *
+    * Renders a token into text matching the requested format.
+    *
+    * @access public
+    *
+    * @param array $options The "options" portion of the token (second
+    * element).
+    *
+    * @return string The text rendered from the token options.
+    *
+    */
+
+    function token($options)
+    {
+    	return $options['text'];
+    }
+}
diff -urpN pearwiki_filter/pearwiki_filter.module pearwiki_filter_new/pearwiki_filter.module
--- pearwiki_filter/pearwiki_filter.module	2007-12-31 18:29:00.000000000 -0500
+++ pearwiki_filter_new/pearwiki_filter.module	2008-07-21 07:45:04.000000000 -0400
@@ -147,8 +147,14 @@ function pearwiki_filter_filter_settings
     '#type' => 'textfield',
     '#title' => t('Ignore tags'),
     '#default_value' => pearwiki_filter_ignore_tags($format),
-    '#description' => t('Tags which are fully ignored (the tag, attributes and content is untouched). Use this for compatibility with other filters. Specify a space-separated list of tagnames.<br/>Example: If you specify <em>code</em> than the filter ignores &lt;code type="php"&gt; ... &lt;/code&gt; which can then be processed by other filters like the <a href="http://drupal.tschannen.net/wiki/geshi_filter">GeSHi filter</a>. This can introduce a security risk through XSS scripting. Make sure the ignored text will be processed by another filter.')
+    '#description' => t('Tags which are fully ignored (the tag, attributes and content is untouched). Use this for compatibility with other filters. Specify a space-separated list of tagnames.<br/>Example: If you specify <em>code</em> then the filter ignores &lt;code type="php"&gt; ... &lt;/code&gt; which can then be processed by other filters like the <a href="http://drupal.tschannen.net/wiki/geshi_filter">GeSHi filter</a>. This can introduce a security risk through XSS scripting. Make sure the ignored text will be processed by another filter.')
   );
+  $form['pearwiki_filter']['compatibility']['pearwiki_filter_ignore_tokens_'. $format] = array(
+    '#type' => 'textfield',
+    '#title' => t('Ignore tokens'),
+    '#default_value' => pearwiki_filter_ignore_tokens($format),
+    '#description' => t('Tokens which are fully ignored (the token, attributes and content is untouched). Use this for integration with other filters. Specify a space-separated list of tokens.<br />Example: If you specify <em>graphviz</em> then the filter ignores [graphviz] ... [/graphviz] or if you specify <em>video</em> then the filter ignores [video:http://some.url/video].')
+     );
   $form['pearwiki_filter']['compatibility']['pearwiki_filter_ignore_regexp_'. $format] = array(
     '#type' => 'textfield',
     '#title' => t('Ignore regexp'),
@@ -297,6 +303,16 @@ function pearwiki_filter_ignore_tags($fo
 }
 
 /**
+ * Space-separated list of tokens which are ignored while rendering.
+ */
+function pearwiki_filter_ignore_tokens($format, $value = NULL) {
+  if (is_null($value)) {
+    return variable_get('pearwiki_filter_ignore_tokens_'. $format, '');
+  }
+  variable_set('pearwiki_filter_ignore_tokens_'. $format, $value);
+}
+
+/**
  * Regular expression whose match is ignored while rendering.
  */
 function pearwiki_filter_ignore_regexp($format, $value = NULL) {
@@ -485,6 +501,9 @@ function pearwiki_filter_process($text, 
   if (pearwiki_filter_ignore_tags($format)) {
     $wiki->insertRule('ignoretag', 'delimiter');
   }
+  if (pearwiki_filter_ignore_tokens($format)) {
+    $wiki->insertRule('ignoretoken', 'delimiter');
+  }
   if (pearwiki_filter_allow_html($format)) {
     $wiki->insertRule('ignorehtml', 'delimiter');
   }
