diff --git a/System/FilePath/Internal.hs b/System/FilePath/Internal.hs
index df4b39cc0dda657136e7506bd02d85429c2b0e17..4a376b33b108327e2ebf09a4da83f8d450b61782 100644
--- a/System/FilePath/Internal.hs
+++ b/System/FilePath/Internal.hs
@@ -292,6 +292,7 @@ dropExtension = fst . splitExtension
 -- > addExtension "file." ".bib" == "file..bib"
 -- > addExtension "file" ".bib" == "file.bib"
 -- > addExtension "/" "x" == "/.x"
+-- > addExtension x "" == x
 -- > Valid x => takeFileName (addExtension (addTrailingPathSeparator x) "ext") == ".ext"
 -- > Windows: addExtension "\\\\share" ".txt" == "\\\\share\\.txt"
 addExtension :: FilePath -> String -> FilePath
diff --git a/changelog.md b/changelog.md
index eeee736fa7dd88eb39344ea671ed03266b7dfe62..038f72ed937409f27908b30a47d5269ac48d5983 100644
--- a/changelog.md
+++ b/changelog.md
@@ -2,6 +2,8 @@
 
 _Note: below all `FilePath` values are unquoted, so `\\` really means two backslashes._
 
+ * Documentation improvements
+
  * Allow QuickCheck-2.9
 
 ## 1.4.1.0  *Dec 2015*
diff --git a/tests/TestGen.hs b/tests/TestGen.hs
index e01a55dfb8124e2e63f5a0e33d002a8d12f2fbf8..848ae5b7c2451d0faa28f2253cf18222673bf732 100755
--- a/tests/TestGen.hs
+++ b/tests/TestGen.hs
@@ -96,6 +96,8 @@ tests =
     ,("W.addExtension \"file\" \".bib\" == \"file.bib\"", property $ W.addExtension "file" ".bib" == "file.bib")
     ,("P.addExtension \"/\" \"x\" == \"/.x\"", property $ P.addExtension "/" "x" == "/.x")
     ,("W.addExtension \"/\" \"x\" == \"/.x\"", property $ W.addExtension "/" "x" == "/.x")
+    ,("P.addExtension x \"\" == x", property $ \(QFilePath x) -> P.addExtension x "" == x)
+    ,("W.addExtension x \"\" == x", property $ \(QFilePath x) -> W.addExtension x "" == x)
     ,("P.takeFileName (P.addExtension (P.addTrailingPathSeparator x) \"ext\") == \".ext\"", property $ \(QFilePathValidP x) -> P.takeFileName (P.addExtension (P.addTrailingPathSeparator x) "ext") == ".ext")
     ,("W.takeFileName (W.addExtension (W.addTrailingPathSeparator x) \"ext\") == \".ext\"", property $ \(QFilePathValidW x) -> W.takeFileName (W.addExtension (W.addTrailingPathSeparator x) "ext") == ".ext")
     ,("W.addExtension \"\\\\\\\\share\" \".txt\" == \"\\\\\\\\share\\\\.txt\"", property $ W.addExtension "\\\\share" ".txt" == "\\\\share\\.txt")