diff --git a/Library/Homebrew/cmd/update.sh b/Library/Homebrew/cmd/update.sh
index 67b3699ed228d7cfe4e43ab562e027eca9bf7a7c..8f02579c379c3b4697a1dc2ea9d7e00498dd5a8b 100644
--- a/Library/Homebrew/cmd/update.sh
+++ b/Library/Homebrew/cmd/update.sh
@@ -215,6 +215,8 @@ merge_or_rebase() {
 
   trap reset_on_interrupt SIGINT
 
+  REMOTE_REF="origin/$UPSTREAM_BRANCH"
+
   if [[ -n "$(git status --untracked-files=all --porcelain 2>/dev/null)" ]]
   then
     if [[ -n "$HOMEBREW_VERBOSE" ]]
@@ -252,11 +254,11 @@ EOS
 
     # Recreate and check out `#{upstream_branch}` if unable to fast-forward
     # it to `origin/#{@upstream_branch}`. Otherwise, just check it out.
-    if git merge-base --is-ancestor "$UPSTREAM_BRANCH" "origin/$UPSTREAM_BRANCH" &>/dev/null
+    if git merge-base --is-ancestor "$UPSTREAM_BRANCH" "$REMOTE_REF" &>/dev/null
     then
       git checkout --force "$UPSTREAM_BRANCH" "${QUIET_ARGS[@]}"
     else
-      git checkout --force -B "$UPSTREAM_BRANCH" "origin/$UPSTREAM_BRANCH" "${QUIET_ARGS[@]}"
+      git checkout --force -B "$UPSTREAM_BRANCH" "$REMOTE_REF" "${QUIET_ARGS[@]}"
     fi
   fi
 
@@ -268,9 +270,9 @@ EOS
 
   if [[ -z "$HOMEBREW_MERGE" ]]
   then
-    git rebase "${QUIET_ARGS[@]}" "origin/$UPSTREAM_BRANCH"
+    git rebase "${QUIET_ARGS[@]}" "$REMOTE_REF"
   else
-    git merge --no-edit --ff "${QUIET_ARGS[@]}" "origin/$UPSTREAM_BRANCH" \
+    git merge --no-edit --ff "${QUIET_ARGS[@]}" "$REMOTE_REF" \
       --strategy=recursive \
       --strategy-option=ours \
       --strategy-option=ignore-all-space