diff --git a/lib/grit/diff.rb b/lib/grit/diff.rb
index 537955bb86a8ceaa19aea89e75ccbea5ce6f2698..00b0b4a67eca9242db5f8991e99625acd55f040c 100644
--- a/lib/grit/diff.rb
+++ b/lib/grit/diff.rb
@@ -27,6 +27,10 @@ module Grit
       while !lines.empty?
         m, a_path, b_path = *lines.shift.match(%r{^diff --git a/(\S+) b/(\S+)$})
         
+        if lines.first =~ /^old mode/
+          2.times { lines.shift }
+        end
+        
         new_file = false
         deleted_file = false
         
