diff --git a/bin/steps/pipenv-python-version b/bin/steps/pipenv-python-version
index e49813a328ab24b955209973d20bea0a7a5c7c6a..a279da92deff1c7357098bbd5847562cce481bc5 100755
--- a/bin/steps/pipenv-python-version
+++ b/bin/steps/pipenv-python-version
@@ -1,10 +1,11 @@
 # Detect Python-version with Pipenv.
 
-if [[ -f $BUILD_DIR/Pipfile.lock ]]; then
+if [[ -f $BUILD_DIR/Pipfile ]]; then
 
     if [[ ! -f $BUILD_DIR/runtime.txt ]]; then
         if [[ ! -f Pipfile.lock ]]; then
-            pipenv lock 2> /dev/null
+            puts-step "Pipfile.lock not found, creating..."
+            /app/.heroku/python/bin/pipenv lock 2> /dev/null
         fi
 
         set +e
diff --git a/bin/steps/python b/bin/steps/python
index b88631b4718c50c5b2b190f431fabdcf59407815..141ea89c0a40eeaa627c7c45d54747c676bbaf55 100755
--- a/bin/steps/python
+++ b/bin/steps/python
@@ -39,7 +39,9 @@ if [ ! "$SKIP_INSTALL" ]; then
 fi
 
 # If Pip isn't up to date:
-if [ "$FRESH_PYTHON" ] || [[ ! $(pip --version) == *$PIP_VERSION* ]]; then
+if [ "$FRESH_PYTHON" ] || pip list -o --format=legacy --disable-pip-version-check | grep '^pip' 2>&1 /dev/null; then
+
+  # TODO: automatically detect pip is out of date with 'pip list -o --format=legacy --disable-pip-version-check | grep '^pip''
   WORKING_DIR=$(pwd)
 
   TMPTARDIR=$(mktemp -d)
diff --git a/test/fixtures/nltk/nltk.txt b/test/fixtures/nltk/nltk.txt
new file mode 100644
index 0000000000000000000000000000000000000000..c4f6bba89dc5bb908437d12b8b0727ae4e6ca5c1
--- /dev/null
+++ b/test/fixtures/nltk/nltk.txt
@@ -0,0 +1 @@
+wordnet
\ No newline at end of file
diff --git a/test/fixtures/nltk/requirements.txt b/test/fixtures/nltk/requirements.txt
new file mode 100644
index 0000000000000000000000000000000000000000..6fa2de44417ce85838334618e6430c5e1abc6a5d
--- /dev/null
+++ b/test/fixtures/nltk/requirements.txt
@@ -0,0 +1 @@
+nltk
\ No newline at end of file
diff --git a/test/fixtures/pipenv-version/Pipfile.lock b/test/fixtures/pipenv-version/Pipfile.lock
new file mode 100644
index 0000000000000000000000000000000000000000..15f40775d714c632441a5f8ce8e0876098618f35
--- /dev/null
+++ b/test/fixtures/pipenv-version/Pipfile.lock
@@ -0,0 +1,23 @@
+{
+    "default": {
+        "requests": {
+            "version": "==2.13.0",
+            "hash": "sha256:1a720e8862a41aa22e339373b526f508ef0c8988baf48b84d3fc891a8e237efb"
+        }
+    },
+    "develop": {},
+    "_meta": {
+        "sources": [
+            {
+                "url": "https://pypi.python.org/simple",
+                "verify_ssl": true
+            }
+        ],
+        "requires": {
+            "python_version": "3.6"
+        },
+        "hash": {
+            "sha256": "5866990104fc8f27d13cdf01abc2a32c553129e03f666316cacc5b42d3e0884e"
+        }
+    }
+}
\ No newline at end of file
diff --git a/test/run b/test/run
index bdb52ec7cc5d6e5e7f23af4529f032465f8925bd..bc1f2e14f6827fa6652ec62f9332a95d506438ce 100755
--- a/test/run
+++ b/test/run
@@ -1,11 +1,28 @@
 #!/usr/bin/env bash
 
+
+
 testNoRequirements() {
   compile "no-requirements"
   assertCapturedError
 }
 
 
+testNLTK() {
+  compile "nltk"
+  assertCaptured "wordnet"
+  assertCapturedSuccess
+
+}
+
+
+testPipenvVersion() {
+  compile "pipenv-version"
+  assertCaptured "3.6.0"
+  assertCapturedSuccess
+}
+
+
 testPipenv() {
   compile "pipenv"
   assertCapturedSuccess