Make `nvm ls` support listing the "versions" directory when it's present.
diff --git a/nvm.sh b/nvm.sh
index f5216b1..9e13892 100644
--- a/nvm.sh
+++ b/nvm.sh
@@ -229,8 +229,13 @@
     if [ `expr "$PATTERN" : "v[0-9]*\.[0-9]*$"` != 0 ]; then
       PATTERN="$PATTERN."
     fi
-    VERSIONS=`find "$NVM_DIR/" -maxdepth 1 -type d -name "$PATTERN*" -exec basename '{}' ';' \
-      | sort -t. -u -k 1.2,1n -k 2,2n -k 3,3n | \grep -v '^ *\.' | \grep -e '^v'`
+    if [ -d "$(nvm_version_dir new)" ]; then
+      VERSIONS=`find "$(nvm_version_dir new)/" "$(nvm_version_dir old)/" -maxdepth 1 -type d -name "$PATTERN*" -exec basename '{}' ';' \
+        | sort -t. -u -k 1.2,1n -k 2,2n -k 3,3n | \grep -v '^ *\.' | \grep -e '^v'`
+    else
+      VERSIONS=`find "$(nvm_version_dir old)/" -maxdepth 1 -type d -name "$PATTERN*" -exec basename '{}' ';' \
+        | sort -t. -u -k 1.2,1n -k 2,2n -k 3,3n | \grep -v '^ *\.' | \grep -e '^v'`
+    fi
   fi
   if [ -z "$VERSIONS" ]; then
     echo "N/A"
diff --git "a/test/fast/Listing versions/Running \"nvm ls\" should list versions in the \"versions\" directory" "b/test/fast/Listing versions/Running \"nvm ls\" should list versions in the \"versions\" directory"
new file mode 100755
index 0000000..eb8f2ba
--- /dev/null
+++ "b/test/fast/Listing versions/Running \"nvm ls\" should list versions in the \"versions\" directory"
@@ -0,0 +1,12 @@
+#!/bin/sh
+
+die () { echo $@ ; exit 1; }
+
+mkdir -p ../../../versions/v0.12.1
+mkdir ../../../v0.1.3
+
+. ../../../nvm.sh
+
+nvm ls 0.12 | grep v0.12.1 || die '"nvm ls" did not list a version in the versions/ directory'
+nvm ls 0.1 | grep v0.1.3 || die '"nvm ls" did not list a version not in the versions/ directory'
+
diff --git a/test/fast/Listing versions/teardown b/test/fast/Listing versions/teardown
index 191d12b..a8fc501 100644
--- a/test/fast/Listing versions/teardown
+++ b/test/fast/Listing versions/teardown
@@ -7,5 +7,6 @@
 rmdir ../../../v0.3.1
 rmdir ../../../v0.3.3
 rmdir ../../../v0.3.9
+rmdir ../../../versions
 unalias nvm_has_system_node