diff --git a/cook.sh b/cook.sh
index 6e4cb2175122e1cd667af2f573e6a375f8de04e3..c6c7ee7bf81146c200047995f9d756b96304e270 100755
--- a/cook.sh
+++ b/cook.sh
@@ -1,6 +1,6 @@
 #!/bin/bash
 
-export RUST_TARGET_PATH=`realpath targets`
+export RUST_TARGET_PATH="$PWD/targets"
 export RUSTFLAGS="--cfg redox"
 export CARGOFLAGS=
 TARGET=x86_64-unknown-redox
@@ -16,6 +16,17 @@ then
         for arg in "${@:2}"
         do
             case "$arg" in
+                fetch)
+                    git clone --recursive "$GIT" build
+                    ;;
+                unfetch)
+                    rm -rf build
+                    ;;
+                update)
+                    pushd build > /dev/null
+                    xargo update
+                    popd > /dev/null
+                    ;;
                 build)
                     pushd build > /dev/null
                     xargo build --target "$TARGET" $CARGOFLAGS
@@ -26,12 +37,6 @@ then
                     xargo clean
                     popd > /dev/null
                     ;;
-                fetch)
-                    git clone --recursive "$GIT" build
-                    ;;
-                unfetch)
-                    rm -rf build
-                    ;;
                 stage)
                     mkdir -p stage/bin
                     pushd build > /dev/null
@@ -50,11 +55,6 @@ then
                 untar)
                     rm -rf stage.tar
                     ;;
-                update)
-                    pushd build > /dev/null
-                    xargo update
-                    popd > /dev/null
-                    ;;
                 *)
                     echo "$0 {package} {build|clean|fetch|update}"
                     ;;