diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -137,8 +137,6 @@
   to the expected output. (Note that Gild will never produce CRLF line endings
   when formatting.)
 
-  It is an error to provide a value for this option unless the mode is `check`.
-
 - `--input=FILE`: Uses `FILE` as the input. If this is `-` (which is the
   default), then the input will be read from STDIN.
 
@@ -158,6 +156,9 @@
   ``` sh
   $ cabal-gild --input p.cabal --output p.cabal
   ```
+
+  If the output is the same file as the input and the input is already
+  formatted, then nothing will happen. The output will not be modified.
 
   It is an error to provide a value for this option when the mode is `check`.
 
diff --git a/cabal-gild.cabal b/cabal-gild.cabal
--- a/cabal-gild.cabal
+++ b/cabal-gild.cabal
@@ -11,7 +11,7 @@
 maintainer: Taylor Fausak
 name: cabal-gild
 synopsis: Formats package descriptions.
-version: 1.2.0.0
+version: 1.3.0.0
 
 source-repository head
   type: git
@@ -90,7 +90,6 @@
     CabalGild.Unstable.Exception.InvalidMode
     CabalGild.Unstable.Exception.InvalidOption
     CabalGild.Unstable.Exception.ParseError
-    CabalGild.Unstable.Exception.SpecifiedCrlfWithFormatMode
     CabalGild.Unstable.Exception.SpecifiedOutputWithCheckMode
     CabalGild.Unstable.Exception.SpecifiedStdinWithFileInput
     CabalGild.Unstable.Exception.UnexpectedArgument
diff --git a/source/library/CabalGild/Unstable/Exception/SpecifiedCrlfWithFormatMode.hs b/source/library/CabalGild/Unstable/Exception/SpecifiedCrlfWithFormatMode.hs
deleted file mode 100644
--- a/source/library/CabalGild/Unstable/Exception/SpecifiedCrlfWithFormatMode.hs
+++ /dev/null
@@ -1,13 +0,0 @@
-module CabalGild.Unstable.Exception.SpecifiedCrlfWithFormatMode where
-
-import qualified Control.Monad.Catch as Exception
-
--- | This exception is thrown when the user specifies the CRLF leniency while
--- using the format mode. In other words, when @--mode=format@ and
--- @--crlf=anything@.
-data SpecifiedCrlfWithFormatMode
-  = SpecifiedCrlfWithFormatMode
-  deriving (Eq, Show)
-
-instance Exception.Exception SpecifiedCrlfWithFormatMode where
-  displayException = const "cannot use --crlf when --mode is format"
diff --git a/source/library/CabalGild/Unstable/Type/Context.hs b/source/library/CabalGild/Unstable/Type/Context.hs
--- a/source/library/CabalGild/Unstable/Type/Context.hs
+++ b/source/library/CabalGild/Unstable/Type/Context.hs
@@ -1,7 +1,6 @@
 module CabalGild.Unstable.Type.Context where
 
 import qualified CabalGild.Unstable.Class.MonadLog as MonadLog
-import qualified CabalGild.Unstable.Exception.SpecifiedCrlfWithFormatMode as SpecifiedCrlfWithFormatMode
 import qualified CabalGild.Unstable.Exception.SpecifiedOutputWithCheckMode as SpecifiedOutputWithCheckMode
 import qualified CabalGild.Unstable.Exception.SpecifiedStdinWithFileInput as SpecifiedStdinWithFileInput
 import qualified CabalGild.Unstable.Type.Config as Config
@@ -65,12 +64,6 @@
   case (Config.mode config, Config.output config) of
     (Optional.Specific Mode.Check, Optional.Specific _) ->
       Exception.throwM SpecifiedOutputWithCheckMode.SpecifiedOutputWithCheckMode
-    _ -> pure ()
-
-  case Config.crlf config of
-    Optional.Specific _
-      | Config.mode config /= Optional.Specific Mode.Check ->
-          Exception.throwM SpecifiedCrlfWithFormatMode.SpecifiedCrlfWithFormatMode
     _ -> pure ()
 
   let theInput = Optional.withDefault Input.Stdin $ Config.input config
diff --git a/source/test-suite/Main.hs b/source/test-suite/Main.hs
--- a/source/test-suite/Main.hs
+++ b/source/test-suite/Main.hs
@@ -5,7 +5,6 @@
 import qualified CabalGild.Unstable.Class.MonadWalk as MonadWalk
 import qualified CabalGild.Unstable.Class.MonadWrite as MonadWrite
 import qualified CabalGild.Unstable.Exception.CheckFailure as CheckFailure
-import qualified CabalGild.Unstable.Exception.SpecifiedCrlfWithFormatMode as SpecifiedCrlfWithFormatMode
 import qualified CabalGild.Unstable.Exception.SpecifiedOutputWithCheckMode as SpecifiedOutputWithCheckMode
 import qualified CabalGild.Unstable.Exception.SpecifiedStdinWithFileInput as SpecifiedStdinWithFileInput
 import qualified CabalGild.Unstable.Extra.String as String
@@ -170,15 +169,25 @@
     w `Hspec.shouldBe` []
     s `Hspec.shouldBe` Map.singleton (Output.File "io.cabal") (String.toUtf8 "f: a\n")
 
-  Hspec.it "fails when --crlf is given with format mode" $ do
+  Hspec.it "does not overwrite CRLF file when lenient" $ do
     let (a, s, w) =
           runGild
-            ["--crlf", "strict"]
-            []
+            ["--io", "p.cabal"]
+            [(Input.File "p.cabal", String.toUtf8 "s\r\n")]
             []
-    a `shouldBeFailure` SpecifiedCrlfWithFormatMode.SpecifiedCrlfWithFormatMode
+    a `Hspec.shouldSatisfy` Either.isRight
     w `Hspec.shouldBe` []
     s `Hspec.shouldBe` Map.empty
+
+  Hspec.it "overwrites CRLF file when strict" $ do
+    let (a, s, w) =
+          runGild
+            ["--crlf", "strict", "--io", "p.cabal"]
+            [(Input.File "p.cabal", String.toUtf8 "s\r\n")]
+            []
+    a `Hspec.shouldSatisfy` Either.isRight
+    w `Hspec.shouldBe` []
+    s `Hspec.shouldBe` Map.singleton (Output.File "p.cabal") (String.toUtf8 "s\n")
 
   Hspec.it "uses --stdin for discovery" $ do
     let (a, s, w) =
