diff -r 2254e666cea3 MoinMoin/config/multiconfig.py
--- a/MoinMoin/config/multiconfig.py	Sat Nov 29 22:42:52 2008 +0100
+++ b/MoinMoin/config/multiconfig.py	Sun Nov 30 02:23:13 2008 +0100
@@ -991,6 +991,8 @@
     ('language_default', 'en', "Default language for user interface and page content, see HelpOnLanguages."),
     ('language_ignore_browser', False, "if True, ignore user's browser language settings, see HelpOnLanguages."),
 
+    ('link_camelcase', True, 'if True, auto-link CamelCase words'),
+
     ('log_reverse_dns_lookups', True,
      "if True, do a reverse DNS lookup on page SAVE. If your DNS is broken, set this to False to speed up SAVE."),
     ('log_timing', False,
diff -r 2254e666cea3 MoinMoin/parser/text_moin_wiki.py
--- a/MoinMoin/parser/text_moin_wiki.py	Sat Nov 29 22:42:52 2008 +0100
+++ b/MoinMoin/parser/text_moin_wiki.py	Sun Nov 30 02:23:13 2008 +0100
@@ -94,21 +94,23 @@
          |
          ^  # ... or beginning of line
         )
-        (?P<word_bang>\!)?  # configurable: avoid getting CamelCase rendered as link
-        (?P<word_name>
-         (?:
-          (%(parent)s)*  # there might be either ../ parent prefix(es)
-          |
-          ((?<!%(child)s)%(child)s)?  # or maybe a single / child prefix (but not if we already had it before)
+        (?P<word_all>
+         (?P<word_bang>\!)?  # configurable: avoid getting CamelCase rendered as link
+         (?P<word_name>
+          (?:
+           (%(parent)s)*  # there might be either ../ parent prefix(es)
+           |
+           ((?<!%(child)s)%(child)s)?  # or maybe a single / child prefix (but not if we already had it before)
+          )
+          (
+           ((?<!%(child)s)%(child)s)?  # there might be / child prefix (but not if we already had it before)
+           (?:[%(u)s][%(l)s]+){2,}  # at least 2 upper>lower transitions make CamelCase
+          )+  # we can have MainPage/SubPage/SubSubPage ...
+          (?:
+           \#  # anchor separator          TODO check if this does not make trouble at places where word_rule is used
+           (?P<word_anchor>\S+)  # some anchor name
+          )?
          )
-         (
-          ((?<!%(child)s)%(child)s)?  # there might be / child prefix (but not if we already had it before)
-          (?:[%(u)s][%(l)s]+){2,}  # at least 2 upper>lower transitions make CamelCase
-         )+  # we can have MainPage/SubPage/SubSubPage ...
-         (?:
-          \#  # anchor separator          TODO check if this does not make trouble at places where word_rule is used
-          (?P<word_anchor>\S+)  # some anchor name
-         )?
         )
         (?:
          (?![%(u)s%(l)s/])  # require anything not upper/lower/slash following
@@ -402,6 +404,9 @@
         self.line_anchors = kw.get('line_anchors', True)
         self.start_line = kw.get('start_line', 0)
         self.macro = None
+
+        self.link_camelcase = (request.getPragma('camelcase', request.cfg.link_camelcase)
+                               in (True, 1, 'on', '1'))
 
         # currently, there is only a single, optional argument to this parser and
         # (when given), it is used as class(es) for a div wrapping the formatter output
@@ -608,6 +613,8 @@
 
     def _word_repl(self, word, groups):
         """Handle WikiNames."""
+        if not self.link_camelcase:
+            return self.formatter.text(groups.get('word_all'))
         bang = ''
         bang_present = groups.get('word_bang')
         if bang_present:
@@ -635,6 +642,7 @@
     _word_bang_repl = _word_repl
     _word_name_repl = _word_repl
     _word_anchor_repl = _word_repl
+    _word_all_repl = _word_repl
 
     def _url_repl(self, word, groups):
         """Handle literal URLs."""
