Index: trac/wiki/formatter.py
===================================================================
--- trac/wiki/formatter.py	(revision 103)
+++ trac/wiki/formatter.py	(working copy)
@@ -586,16 +586,18 @@
             else:
                 self.code_text += line + os.linesep
         elif not self.code_processor:
-            match = Formatter._processor_re.search(line)
-            if match:
-                name = match.group(1)
-                self.code_processor = WikiProcessor(self.env, name)
-            else:
-                self.code_text += line + os.linesep 
-                self.code_processor = WikiProcessor(self.env, 'default')
+            (self.code_processor, self.code_text) = self._find_code_processor(line)
         else:
             self.code_text += line + os.linesep
 
+    def _find_code_processor(self, line):
+        match = Formatter._processor_re.search(line)
+        if match:
+            name = match.group(1)
+            return (WikiProcessor(self.env, name), '')
+        else:
+            return (WikiProcessor(self.env, 'default'), line + os.linesep)
+
     def format(self, text, out, escape_newlines=False):
         self.out = out
         self._open_tags = []
@@ -743,6 +745,9 @@
     def _macro_formatter(self, match, fullmatch):
         return match
 
+    def _find_code_processor(self, line):
+        return (WikiProcessor(self.env, 'default'), '')
+
     def format(self, text, out, max_depth=6, min_depth=1):
         self.outline = []
         class NullOut(object):


