Index: trac/wiki/api.py
===================================================================
--- trac/wiki/api.py	(revision 3014)
+++ trac/wiki/api.py	(working copy)
@@ -186,15 +186,24 @@
     
     def get_wiki_syntax(self):
         ignore_missing = self.config.getbool('wiki', 'ignore_missing_pages')
+        insert_spaces = self.config.getbool('wiki', 'insert_spaces')
         yield (r"!?(?<!/)\b[A-Z][a-z]+(?:[A-Z][a-z]*[a-z/])+"
                 "(?:#[A-Za-z0-9]+)?(?=\Z|\s|[.,;:!?\)}\]])",
-               lambda x, y, z: self._format_link(x, 'wiki', y, y,
-                                                 ignore_missing))
+               lambda x, y, z: self._format_syntax_link(x, 'wiki', y, y,
+                                                        insert_spaces,
+                                                        ignore_missing))
 
     def get_link_resolvers(self):
-        yield ('wiki', self._format_fancy_link)
+        yield ('wiki', self._format_resolver_link)
 
-    def _format_fancy_link(self, f, n, p, l):
+    def _format_syntax_link(self, formatter, ns, page, label,
+                            insert_spaces, ignore_missing):
+        if insert_spaces:
+            words = re.split(r"([A-Z])", page)
+            label = ' '.join([a+b for a,b in zip(words[1::2], words[::2][1:])])
+        return self._format_link(formatter, ns, page, label, ignore_missing)
+
+    def _format_resolver_link(self, f, n, p, l):
         return self._format_link(f, n, p, l, False)
 
     def _format_link(self, formatter, ns, page, label, ignore_missing):

