diff --git a/Makefile.am b/Makefile.am
index c4ccee65f1..627cf3ca64 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -403,6 +403,7 @@ AUX_FILES =						\
   gnu/packages/aux-files/pack-audit.c			\
   gnu/packages/aux-files/python/sanity-check.py		\
   gnu/packages/aux-files/python/sitecustomize.py	\
+  gnu/packages/aux-files/renpy/renpy.in	\
   gnu/packages/aux-files/run-in-namespace.c
 
 # Templates, examples.
diff --git a/gnu/packages/aux-files/renpy/renpy.in b/gnu/packages/aux-files/renpy/renpy.in
new file mode 100644
index 0000000000..914a735fa4
--- /dev/null
+++ b/gnu/packages/aux-files/renpy/renpy.in
@@ -0,0 +1,48 @@
+#! @PYTHON@
+# -*- mode: python -*-
+
+from __future__ import print_function
+
+import os
+import sys
+import warnings
+
+def path_to_common(renpy_base):
+    return renpy_base + "/common"
+
+def path_to_saves(gamedir, save_directory=None):
+    import renpy
+
+    if save_directory is None:
+        save_directory = renpy.config.save_directory
+        save_directory = renpy.exports.fsencode(save_directory)
+
+    if not save_directory:
+        return gamedir + "/saves"
+
+    return os.path.join(os.path.expanduser("~/.renpy"), save_directory)
+
+def main():
+    try:
+        import renpy.bootstrap
+        import renpy.arguments
+    except ImportError:
+        print("""Could not import renpy.bootstrap.
+Please ensure you decompressed Ren'py correctly, preserving the directory
+structure.""", file=sys.stderr)
+        raise
+
+    args = renpy.arguments.bootstrap()
+    if not args.basedir:
+        print("""This Ren'py requires a basedir to launch.
+The basedir is the directory, in which .rpy source files or compiled .rpyc files
+live -- usually the 'game' subdirectory of a game packaged by Ren'py.
+
+If you want the Ren'py launcher, use \"renpy-launcher\" instead.""",
+              file=sys.stderr)
+        sys.exit()
+
+    renpy.bootstrap.bootstrap("@RENPY_BASE@")
+
+if __name__ == "__main__":
+    main()
diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm
index fb8744382c..955d630704 100644
--- a/gnu/packages/game-development.scm
+++ b/gnu/packages/game-development.scm
@@ -1444,70 +1444,17 @@ (define-public renpy
              ;;     `-- Super Awesome Game.sh
              (let* ((out (assoc-ref outputs "out"))
                     (bin/renpy (string-append out "/bin/renpy")))
-               (mkdir-p (string-append out "/bin"))
                (copy-recursively "renpy/common"
                                  (string-append out "/share/renpy/common"))
                (copy-recursively "gui"
                                  (string-append out "/share/renpy/gui"))
 
-               (call-with-output-file bin/renpy
-                 (lambda (port)
-                   (format port "#!~a/bin/python2~%"
-                           (assoc-ref inputs "python2"))
-                   (format port "
-from __future__ import print_function
-
-import os
-import sys
-import warnings
-
-def path_to_common(renpy_base):
-    return renpy_base + \"/common\"
-
-def path_to_saves(gamedir, save_directory=None):
-    import renpy  # @UnresolvedImport
-
-    if save_directory is None:
-        save_directory = renpy.config.save_directory
-        save_directory = renpy.exports.fsencode(save_directory)
-
-    if not save_directory:
-        return gamedir + \"/saves\"
-
-    return os.path.expanduser(\"~~/.renpy/\" + save_directory)
-
-def path_to_renpy_base():
-    return \"~a\"
-
-def main():
-    renpy_base = path_to_renpy_base()
-    try:
-        import renpy.bootstrap
-        import renpy.arguments
-    except ImportError:
-        print(\"\"\"Could not import renpy.bootstrap.
-Please ensure you decompressed Ren'Py correctly, preserving the directory
-structure.\"\"\", file=sys.stderr)
-        raise
-
-    args = renpy.arguments.bootstrap()
-    if not args.basedir:
-        print(\"\"\"This Ren'py requires a basedir to launch.
-The basedir is the directory, in which .rpy files live -- usually the 'game'
-subdirectory of a game packaged by Ren'py.
-
-If you want the Ren'py launcher, use renpy-launcher instead.\"\"\",
-              file=sys.stderr)
-        sys.exit()
-
-    renpy.bootstrap.bootstrap(renpy_base)
-
-if __name__ == \"__main__\":
-    main()
-"
-                           (string-append out "/share/renpy"))))
-               (chmod bin/renpy #o755)
-               #t)))
+               (mkdir-p (string-append out "/bin"))
+               (copy-file (assoc-ref inputs "renpy.in") bin/renpy)
+               (substitute* bin/renpy
+                 (("@PYTHON@") (search-input-file inputs "bin/python2"))
+                 (("@RENPY_BASE@") (string-append out "/share/renpy")))
+               (chmod bin/renpy #o755))))
 
          (add-after 'install 'install-games
            (lambda* (#:key outputs #:allow-other-keys)
@@ -1561,7 +1508,8 @@ (define* (install-renpy-game #:key output game name (renpy renpy)
                                     inputs))))))))
                #t))))))
     (inputs
-     `(("python2-renpy" ,python2-renpy)
+     `(("renpy.in" ,(search-auxiliary-file "renpy/renpy.in"))
+       ("python2-renpy" ,python2-renpy)
        ("python2-tkinter" ,python-2 "tk")
        ("python2" ,python-2) ; for ‘fix-commands’ and ‘wrap’
        ("xdg-utils" ,xdg-utils)))
