Index: chessboard.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/chessboard/chessboard.module,v
retrieving revision 1.60.2.18.2.2
diff -u -p -r1.60.2.18.2.2 chessboard.module
--- chessboard.module	13 Feb 2011 16:06:53 -0000	1.60.2.18.2.2
+++ chessboard.module	13 Feb 2011 21:00:37 -0000
@@ -145,6 +145,17 @@ function chessboard_filter($op, $delta =
   }
 }
 
+function chessboard_process_chessboard_notation($elements) {
+  $node = NULL;
+  $field = array();
+  $items = array();
+  foreach (element_children($elements) as $delta) {
+    $items[$delta] = &$elements[$delta]['#item'];
+  }
+  chessboard_field('sanitize', $node, $field, $items, FALSE, FALSE);
+  return $elements;
+}
+
 /**
  * Implements hook_theme().
  */
@@ -296,10 +307,7 @@ function _chessboard_filter_callback($ma
   $item = array(
     'value' => $matches[1],
   );
-  $node = NULL;
-  $field = array();
   $items = array($item);
-  chessboard_field('sanitize', $node, $field, $items, FALSE, FALSE);
   $element = _chessboard_filter_formatter_view($items);
   $output = _chessboard_render_elements($element);
   if (isset($element['#attached']) && filter_format_allowcache($filter->format)) {
@@ -336,6 +344,7 @@ function _chessboard_filter_formatter_vi
         drupal_get_path('module', 'chessboard') . '/chessboard.css' => array('media' => 'all', 'preprocess' => FALSE),
       ),
     ),
+    '#pre_render' => array('chessboard_process_chessboard_notation'),
   );
   foreach ($items as $delta => $item) {
     $element[$delta] = array(
