diff --git a/CHANGELOG.md b/CHANGELOG.md
index b45a9c5e86c4f9e8f225407ebd7dd269824cce0b..9441c53437fa201e4004eca44ff741725cc8da8a 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,9 @@
 # Python Buildpack Changelog
 
+# 136
+
+Upgrade to 3.6.6 and support 3.7.0 on all runtimes.
+
 # 135
 
 Upgrade Pipenv to v2018.5.18.
diff --git a/README.md b/README.md
index 0a5aed1d59a50a6fd84ff0c5d848133e4c6cfbb4..a4a5bf962c754a35b2a72f13161181cf022f6de5 100644
--- a/README.md
+++ b/README.md
@@ -23,7 +23,7 @@ Deploying a Python application couldn't be easier:
     $ git push heroku master
     …
     -----> Python app detected
-    -----> Installing python-3.6.5
+    -----> Installing python-3.6.6
     -----> Installing pip
     -----> Installing requirements with Pipenv 2018.5.18…
            ...
@@ -58,5 +58,6 @@ Or, with a `runtime.txt` file:
 
 Runtime options include:
 
-- `python-3.6.5`
+- `python-3.7.0`
+- `python-3.6.6`
 - `python-2.7.15`
diff --git a/bin/compile b/bin/compile
index 6f4caee0f84c997a379cc9596ce7702680eb2185..de41aa7477c53392e069cb4c1c839cb5703862c6 100755
--- a/bin/compile
+++ b/bin/compile
@@ -49,8 +49,8 @@ export VENDOR_URL
 # These variables are used to specify which versions of Python to install by default,
 # as well as prompt the user to upgrade if they are using an un–supported version.
 # Note: When 3.7 lands, I recommend switching to LATEST_36 and LATEST_37.
-DEFAULT_PYTHON_VERSION="python-3.6.5"
-LATEST_3="python-3.6.5"
+DEFAULT_PYTHON_VERSION="python-3.6.6"
+LATEST_3="python-3.6.6"
 LATEST_2="python-2.7.15"
 
 # Which stack is used (for binary downloading), if none is provided (e.g. outside of Heroku)?
diff --git a/builds/runtimes/python-3.6.6 b/builds/runtimes/python-3.6.6
new file mode 100755
index 0000000000000000000000000000000000000000..6da9e250e2a81c35f66cea151aa08be089be40a2
--- /dev/null
+++ b/builds/runtimes/python-3.6.6
@@ -0,0 +1,21 @@
+#!/usr/bin/env bash
+# Build Path: /app/.heroku/python/
+# Build Deps: libraries/sqlite
+
+OUT_PREFIX=$1
+
+echo "Building Python…"
+SOURCE_TARBALL='https://python.org/ftp/python/3.6.6/Python-3.6.6.tgz'
+curl -L $SOURCE_TARBALL | tar xz
+mv Python-3.6.6 src
+cd src
+
+./configure --prefix=$OUT_PREFIX --with-ensurepip=no
+make
+make install
+
+# Remove unneeded test directories, similar to the official Docker Python images:
+# https://github.com/docker-library/python
+find "${OUT_PREFIX}" \( -type d -a \( -name test -o -name tests \) \) -exec rm -rf '{}' +
+
+ln $OUT_PREFIX/bin/python3 $OUT_PREFIX/bin/python
diff --git a/builds/runtimes/python-3.7.0 b/builds/runtimes/python-3.7.0
new file mode 100755
index 0000000000000000000000000000000000000000..2046c4555e7927b574ca48ed0e8434e7901000a7
--- /dev/null
+++ b/builds/runtimes/python-3.7.0
@@ -0,0 +1,21 @@
+#!/usr/bin/env bash
+# Build Path: /app/.heroku/python/
+# Build Deps: libraries/sqlite
+
+OUT_PREFIX=$1
+
+echo "Building Python…"
+SOURCE_TARBALL='https://python.org/ftp/python/3.7.0/Python-3.7.0.tgz'
+curl -L $SOURCE_TARBALL | tar xz
+mv Python-3.7.0 src
+cd src
+
+./configure --prefix=$OUT_PREFIX --with-ensurepip=no
+make
+make install
+
+# Remove unneeded test directories, similar to the official Docker Python images:
+# https://github.com/docker-library/python
+find "${OUT_PREFIX}" \( -type d -a \( -name test -o -name tests \) \) -exec rm -rf '{}' +
+
+ln $OUT_PREFIX/bin/python3 $OUT_PREFIX/bin/python
diff --git a/test/run b/test/run
index 211f2a8fb839299de1768156fdfbf999c8f8e2d9..9117677aa9c7731950f4e5ca1df5a5bff15cf340 100755
--- a/test/run
+++ b/test/run
@@ -12,7 +12,7 @@ testPipenvLock() {
 
 testPipenvVersion() {
   compile "pipenv-version"
-  assertCaptured "3.6.5"
+  assertCaptured "3.6.6"
   assertCapturedSuccess
 }
 
@@ -83,7 +83,7 @@ testPython2() {
 
 testPython3() {
   compile "python3"
-  assertCaptured "python-3.6.5"
+  assertCaptured "python-3.6.6"
   assertCapturedSuccess
 }