diff --git a/install.sh b/install.sh
index 8974593..15de6bf 100755
--- a/install.sh
+++ b/install.sh
@@ -11,6 +11,33 @@
   NVM_DIR="$HOME/.nvm"
 fi
 
+#
+# Outputs the location to NVM depending on:
+# * The availability of $NVM_SOURCE
+# * The method used ("script" or "git" in the script, defaults to "git")
+# NVM_SOURCE always takes precedence
+#
+nvm_source() {
+  local NVM_METHOD
+  NVM_METHOD="$1"
+  if [ -z "$NVM_SOURCE" ]; then
+    local NVM_SOURCE
+  else
+    echo "$NVM_SOURCE"
+    return 0
+  fi
+  if [ "_$NVM_METHOD" = "_script" ]; then
+    NVM_SOURCE="https://raw.githubusercontent.com/creationix/nvm/v0.18.0/nvm.sh"
+  elif [ "_$NVM_METHOD" = "_git" ] || [ -z "$NVM_METHOD" ]; then
+    NVM_SOURCE="https://github.com/creationix/nvm.git"
+  else
+    echo >&2 "Unexpected value \"$NVM_METHOD\" for \$NVM_METHOD"
+    return 1
+  fi
+  echo "$NVM_SOURCE"
+  return 0
+}
+
 nvm_download() {
   if nvm_has "curl"; then
     curl $*
@@ -27,10 +54,6 @@
 }
 
 install_nvm_from_git() {
-  if [ -z "$NVM_SOURCE" ]; then
-    NVM_SOURCE="https://github.com/creationix/nvm.git"
-  fi
-
   if [ -d "$NVM_DIR/.git" ]; then
     echo "=> nvm is already installed in $NVM_DIR, trying to update"
     printf "\r=> "
@@ -42,16 +65,15 @@
     echo "=> Downloading nvm from git to '$NVM_DIR'"
     printf "\r=> "
     mkdir -p "$NVM_DIR"
-    git clone "$NVM_SOURCE" "$NVM_DIR"
+    git clone "$(nvm_source "git")" "$NVM_DIR"
   fi
   cd "$NVM_DIR" && git checkout v0.18.0 && git branch -D master >/dev/null 2>&1
   return
 }
 
 install_nvm_as_script() {
-  if [ -z "$NVM_SOURCE" ]; then
-    NVM_SOURCE="https://raw.githubusercontent.com/creationix/nvm/v0.18.0/nvm.sh"
-  fi
+  local NVM_SOURCE
+  NVM_SOURCE=$(nvm_source "script")
 
   # Downloading to $NVM_DIR
   mkdir -p "$NVM_DIR"
@@ -60,8 +82,8 @@
   else
     echo "=> Downloading nvm as script to '$NVM_DIR'"
   fi
-  nvm_download -s "$NVM_SOURCE" -o "$NVM_DIR/nvm.sh" || {
-    echo >&2 "Failed to download '$NVM_SOURCE'.."
+  nvm_download -s "$_source" -o "$NVM_DIR/nvm.sh" || {
+    echo >&2 "Failed to download '$_source'.."
     return 1
   }
 }
diff --git a/test/install_script/nvm_source b/test/install_script/nvm_source
new file mode 100755
index 0000000..94c773f
--- /dev/null
+++ b/test/install_script/nvm_source
@@ -0,0 +1,37 @@
+#!/bin/sh
+
+cleanup () {
+  unset -f die cleanup
+  unset NVM_SOURCE out
+}
+die () { echo $@ ; cleanup ; exit 1; }
+
+NVM_ENV=testing . ../../install.sh
+
+# nvm_source with no parameter returns the git endpoint
+echo $(nvm_source) | grep "nvm.git$" > /dev/null || die "nvm_source without arguments should return the location of the git repo" 
+
+# nvm_source with git parameter returns the location of the nvm repo
+echo $(nvm_source "git") | grep "nvm.git$" > /dev/null || die "nvm_source without arguments should return the location of the git repo" 
+
+# nvm_source with script parameter returns the location of nvm.sh
+echo $(nvm_source "script") | grep "nvm.sh$" > /dev/null || die "nvm_source \"script\" should return the location of nvm.sh"
+
+# nvm_source with any other parameter errors out and exits
+nvm_source "anything" 2> /dev/null && die "nvm_source with invalid parameter should exit"
+out=$(nvm_source "anything" 2>&1 >/dev/null) || : #Saving the process here
+[ -z "$out" ] && die "nvm_source with invalid parameter should error out"
+
+#nvm_source should always return NVM_SOURCE no matter the parameters
+NVM_SOURCE="my_location"
+out=$(nvm_source)
+[ "_$out" = "_my_location" ] || die "nvm_source without arguments should have returned \$NVM_SOURCE. Got \"$out\""
+out=$(nvm_source "git")
+[ "_$out" = "_my_location" ] || die "nvm_source git should have returned \$NVM_SOURCE. Got \"$out\""
+out=$(nvm_source "script")
+[ "_$out" = "_my_location" ] || die "nvm_source script should have returned \$NVM_SOURCE. Got \"$out\""
+out=$(nvm_source "anything")
+[ "_$out" = "_my_location" ] || die "nvm_source script should have returned \$NVM_SOURCE. Got \"$out\""
+
+cleanup
+
