diff --git a/ChangeLog.md b/ChangeLog.md
new file mode 100644
--- /dev/null
+++ b/ChangeLog.md
@@ -0,0 +1,8 @@
+# 0.2.0.0
+
+- Fix: forgot to specify exposed-modules.
+- Fix: returns the source text if parser doesn't match.
+
+# 0.1.0.0
+
+- Initial release.
diff --git a/src/Text/Parser/Substring.hs b/src/Text/Parser/Substring.hs
--- a/src/Text/Parser/Substring.hs
+++ b/src/Text/Parser/Substring.hs
@@ -6,8 +6,7 @@
 
 import           Control.Applicative ((<|>))
 import           Data.Attoparsec.Text
-import           Data.Maybe (fromMaybe)
-import           Data.Monoid ((<>), mempty)
+import           Data.Monoid ((<>))
 import           Data.Text (Text)
 import qualified Data.Text.Lazy as Text
 import qualified Data.Text.Lazy.Builder as TextBuilder
@@ -22,17 +21,14 @@
   Text.writeFile filePath =<< replaceOnceWithParser p <$> Text.readFile filePath
 
 
--- TODO: 失敗した場合に元のテキストを返す
 replaceOnceWithParser :: Parser Text -> Text -> Text
-replaceOnceWithParser p =
-  Text.toStrict
-    . TextBuilder.toLazyText
-    . fromMaybe mempty
-    . maybeResult
-    . traceId "fed"
-    . flip feed ""
-    . traceId "parsed"
-    . parse (onceReplacify p)
+replaceOnceWithParser p t =
+  maybe t (Text.toStrict . TextBuilder.toLazyText)
+    $ maybeResult
+    $ traceId "fed"
+    $ flip feed ""
+    $ traceId "parsed"
+    $ parse (onceReplacify p) t
 
 
 onceReplacify :: Parser Text -> Parser Builder
diff --git a/substring-parser.cabal b/substring-parser.cabal
--- a/substring-parser.cabal
+++ b/substring-parser.cabal
@@ -3,7 +3,7 @@
 -- see: https://github.com/sol/hpack
 
 name:           substring-parser
-version:        0.1.0.0
+version:        0.2.0.0
 synopsis:       Match / replace substrings with a parser combinators.
 description:    See README.md
 category:       Text, Parsing
@@ -17,6 +17,7 @@
 cabal-version:  >= 1.10
 
 extra-source-files:
+    ChangeLog.md
     README.md
 
 library
@@ -30,6 +31,8 @@
     , text
   exposed-modules:
       Text.Parser.Substring
+  other-modules:
+      Paths_substring_parser
   default-language: Haskell2010
 
 test-suite add-env-config-test
diff --git a/test/Spec.hs b/test/Spec.hs
--- a/test/Spec.hs
+++ b/test/Spec.hs
@@ -10,7 +10,11 @@
 
 main :: IO ()
 main = hspec $
-  describe "replaceWithParser" $
+  describe "replaceWithParser" $ do
     it "replace first matching text by parser" $
       replaceOnceWithParser (string "abc" *> pure "def") "--abc-abc-"
         `shouldBe` "--def-abc-"
+
+    it "returns the source text if parser doesn't match" $ do
+      let src = "--abc-abc-"
+      replaceOnceWithParser mempty src `shouldBe` src
