diff --git a/lib/git/base.rb b/lib/git/base.rb
index <HASH>..<HASH> 100644
--- a/lib/git/base.rb
+++ b/lib/git/base.rb
@@ -426,8 +426,8 @@ module Git
     end
     
     
-    def ls_files
-      self.lib.ls_files
+    def ls_files(location=nil)
+      self.lib.ls_files(location)
     end
 
     def with_working(work_dir) # :yields: the Git::WorkingDirectory
diff --git a/lib/git/lib.rb b/lib/git/lib.rb
index <HASH>..<HASH> 100644
--- a/lib/git/lib.rb
+++ b/lib/git/lib.rb
@@ -293,9 +293,9 @@ module Git
       hsh
     end
             
-    def ls_files
+    def ls_files(location=nil)
       hsh = {}
-      command_lines('ls-files', '--stage').each do |line|
+      command_lines('ls-files', ['--stage', location]).each do |line|
         (info, file) = line.split("\t")
         (mode, sha, stage) = info.split
         file = eval(file) if file =~ /^\".*\"$/ # This takes care of quoted strings returned from git
allow ls_files to take a subdirectory argument