diff --git a/Library/Homebrew/cmd/update.rb b/Library/Homebrew/cmd/update.rb
index 21e119d0c3a7eefc6dded6c5aa2a5789495428d0..d243799e886c2123126b40bcdfbb7711fc9f6c8b 100644
--- a/Library/Homebrew/cmd/update.rb
+++ b/Library/Homebrew/cmd/update.rb
@@ -25,7 +25,7 @@ module Homebrew
     unlink_tap_formula(tapped_formulae)
 
     report = Report.new
-    master_updater = Updater.new
+    master_updater = Updater.new(HOMEBREW_REPOSITORY)
     begin
       master_updater.pull!
     ensure
@@ -39,7 +39,7 @@ module Homebrew
 
     each_tap do |user, repo|
       repo.cd do
-        updater = Updater.new
+        updater = Updater.new(repo)
 
         begin
           updater.pull!
@@ -135,7 +135,11 @@ module Homebrew
 end
 
 class Updater
-  attr_reader :initial_revision, :current_revision
+  attr_reader :initial_revision, :current_revision, :repository
+
+  def initialize(repository)
+    @repository = repository
+  end
 
   def pull!
     safe_system "git", "checkout", "-q", "master"
@@ -178,7 +182,7 @@ class Updater
           when :R then $3
           else $2
           end
-        map[status] << Pathname.pwd.join(path)
+        map[status] << repository.join(path)
       end
     end
 
diff --git a/Library/Homebrew/test/test_updater.rb b/Library/Homebrew/test/test_updater.rb
index db08a79fae2f4d879568736ffb23dd8d688197a6..81e60822aade35556e44669f5449c18869abc214 100644
--- a/Library/Homebrew/test/test_updater.rb
+++ b/Library/Homebrew/test/test_updater.rb
@@ -4,7 +4,7 @@ require 'yaml'
 
 class UpdaterTests < Homebrew::TestCase
   class UpdaterMock < ::Updater
-    def initialize(*args)
+    def initialize(*)
       super
       @outputs = Hash.new { |h, k| h[k] = [] }
       @expected = []
@@ -42,7 +42,7 @@ class UpdaterTests < Homebrew::TestCase
   end
 
   def setup
-    @updater = UpdaterMock.new
+    @updater = UpdaterMock.new(HOMEBREW_REPOSITORY)
     @report = Report.new
   end