diff --git a/CHANGES b/CHANGES
index 23a9600c13ead4c5c49e45b6d4bb0b9bfc963f3e..5d3f2491536462c4229f9cf09a5119ae90ab1abe 100644
--- a/CHANGES
+++ b/CHANGES
@@ -47,6 +47,10 @@
     _push_buffer(), _pop_buffer(),
     caller_stack._push_frame(), caller_stack._pop_frame().
 
+  - added a runner script "mako-render" which renders 
+    standard input as a template to stdout [ticket:81] 
+    [ticket:56]
+    
 - Bugfixes:
   - can now use most names from __builtins__ as variable
     names without explicit declaration (i.e. 'id', 
diff --git a/scripts/mako-render b/scripts/mako-render
new file mode 100644
index 0000000000000000000000000000000000000000..1ea27907aa9af65339f98a5e617e9c87ff589bae
--- /dev/null
+++ b/scripts/mako-render
@@ -0,0 +1,38 @@
+#!/usr/bin/env python
+
+def render(data):
+    from mako.template import Template
+    from mako.lookup import TemplateLookup
+
+    lookup = TemplateLookup(["."])
+    return Template(data, lookup=lookup).render()
+
+def main(argv=None):
+    from os.path import isfile
+    from sys import stdin
+
+    if argv is None:
+        import sys
+        argv = sys.argv
+
+    from optparse import OptionParser
+
+    parser = OptionParser("usage: %prog [FILENAME]")
+
+    opts, args = parser.parse_args(argv[1:])
+    if len(args) not in (0, 1):
+        parser.error("wrong number of arguments") # Will exit
+
+    if (len(args) == 0) or (args[0] == "-"):
+        fo = stdin
+    else:
+        filename = args[0]
+        if not isfile(filename):
+            raise SystemExit("error: can't find %s" % filename)
+        fo = open(filename)
+
+    data = fo.read()
+    print render(data)
+
+if __name__ == "__main__":
+    main()
diff --git a/setup.py b/setup.py
index f61a6aefb0af933b112bc9e139ec82351c0fcad7..76668671494c1dbad717c6522fba08db43c1eaef 100644
--- a/setup.py
+++ b/setup.py
@@ -34,6 +34,7 @@ SVN version:
       license='MIT',
       package_dir={'':'lib'},
       packages=find_packages('lib', exclude=['ez_setup', 'examples', 'tests']),
+      scripts=['scripts/mako-render'],
       zip_safe=False,
       install_requires=[
           'Beaker',