diff --git a/tg/decorators.py b/tg/decorators.py
--- a/tg/decorators.py
+++ b/tg/decorators.py
@@ -337,23 +337,18 @@
     future versions may make the `genshi:` optional if you want to use
     the default engine.
     """
-    if hasattr(controller, 'decoration'):
-        decoration = controller.decoration
-    else:
+    try:
+        engines = controller.decoration.engines
+    except AttributeError:
         return
-    if hasattr(decoration, 'engines'):
-        engines = decoration.engines
-    else:
-        return
-
+    try:
+        override_mapping = request._override_mapping
+    except AttributeError:
+        override_mapping = request._override_mapping = {}
+    template = template.split(':', 1)
     for content_type, content_engine in engines.iteritems():
-        template = template.split(':')
-        template.extend(content_engine[2:])
-        try:
-            override_mapping = request._override_mapping
-        except AttributeError:
-            override_mapping = request._override_mapping = {}
-        override_mapping[controller.im_func] = {content_type: template}
+        override_mapping[controller.im_func] = {
+            content_type: template + content_engine[2:]}


 class validate(object):

