diff --git a/changelog b/changelog
--- a/changelog
+++ b/changelog
@@ -1,5 +1,8 @@
 -*-change-log-*-
 
+0.2.1 February 15 2015
+	* Add support for diffs that include file mode changes.
+
 0.2.0 February 2015
 	* Added support for binary diffs. Note this is a breaking change. Calls to fileDeltaHunks need to be replaced with calls to fileDeltaContent.
 
diff --git a/diff-parse.cabal b/diff-parse.cabal
--- a/diff-parse.cabal
+++ b/diff-parse.cabal
@@ -1,5 +1,5 @@
 Name:                   diff-parse
-Version:                0.2.0
+Version:                0.2.1
 Author:                 Gabe Mulley <gabe@edx.org>
 Maintainer:             Gabe Mulley <gabe@edx.org>
 Category:               Parsing
diff --git a/src/Text/Diff/Parse/Internal.hs b/src/Text/Diff/Parse/Internal.hs
--- a/src/Text/Diff/Parse/Internal.hs
+++ b/src/Text/Diff/Parse/Internal.hs
@@ -62,7 +62,10 @@
 takeLine = takeTill isEndOfLine <* endOfLine
 
 fileStatus :: Parser FileStatus
-fileStatus = option Modified $ ((string "new" *> return Created) <|> (string "deleted" *> return Deleted)) <* string " file mode" <* takeLine
+fileStatus = do
+    _ <- option "" (string "old mode " >> takeLine)
+    _ <- option "" (string "new mode " >> takeLine)
+    option Modified $ ((string "new" *> return Created) <|> (string "deleted" *> return Deleted)) <* string " file mode" <* takeLine
 
 path :: Parser Text
 path = option "" (letter >> string "/") *> takeTill (\c -> (isSpace c) || (isEndOfLine c))
