diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,3 +1,9 @@
+# 1.3.20  [2024-01-10]
+
+  - feature: Make 'Y/n' prompts case-insensitive
+  - dependencies: Update to hledger-lib 1.32
+  - dependencies: Allow megaparsec 9.6
+
 # 1.3.19  [2023-09-15]
 
   - dependencies: Update to hledger-lib 1.31
diff --git a/hledger-iadd.cabal b/hledger-iadd.cabal
--- a/hledger-iadd.cabal
+++ b/hledger-iadd.cabal
@@ -1,5 +1,5 @@
 name:                hledger-iadd
-version:             1.3.19
+version:             1.3.20
 synopsis:            A terminal UI as drop-in replacement for hledger add
 description:         This is a terminal UI as drop-in replacement for hledger add.
                      .
@@ -60,7 +60,7 @@
                      , Data.Time.Ext
   default-language:    Haskell2010
   build-depends:       base >= 4.12 && < 5
-                     , hledger-lib >= 1.29 && < 1.32
+                     , hledger-lib >= 1.29 && < 1.33
                      , brick >= 1.5
                      , vty >= 5.4
                      , text
@@ -71,7 +71,7 @@
                      , transformers >= 0.3
                      , time >= 1.5
                      , vector
-                     , megaparsec >= 7.0 && <9.6
+                     , megaparsec >= 7.0 && <9.7
                      , containers
                      , optparse-applicative
                      , directory
@@ -87,7 +87,7 @@
   default-language:    Haskell2010
   build-depends:       base >= 4.12 && < 5
                      , hledger-iadd
-                     , hledger-lib >= 1.29 && <1.32
+                     , hledger-lib >= 1.29 && <1.33
                      , brick >= 1.5
                      , vty >= 5.4
                      , text
@@ -103,7 +103,7 @@
                      , xdg-basedir
                      , unordered-containers
                      , free >= 4.12.4
-                     , megaparsec >= 7.0 && <9.6
+                     , megaparsec >= 7.0 && <9.7
   ghc-options:         -threaded -Wall -fdefer-typed-holes -fno-warn-name-shadowing
 
 test-suite spec
@@ -117,7 +117,7 @@
   default-language:   Haskell2010
   build-depends:      base >= 4.12 && < 5
                     , hledger-iadd
-                    , hledger-lib >= 1.31 && <1.32
+                    , hledger-lib >= 1.32 && <1.33
                     , text
                     , transformers >= 0.3
                     , time >= 1.5
@@ -125,7 +125,7 @@
                     , hspec
                     , QuickCheck
                     , free >= 4.12.4
-                    , megaparsec >= 7.0 && <9.6
+                    , megaparsec >= 7.0 && <9.7
                     , text-zipper >= 0.10
   build-tool-depends: hspec-discover:hspec-discover ==2.*
   ghc-options:        -threaded -Wall -fdefer-typed-holes -fno-warn-name-shadowing
diff --git a/src/Model.hs b/src/Model.hs
--- a/src/Model.hs
+++ b/src/Model.hs
@@ -82,7 +82,7 @@
       in AccountQuestion (addPosting newPosting trans) ""
 
   FinalQuestion trans _
-    | fromEither entryText == "y" -> return $ Right $ Finished trans
+    | fromEither entryText `elem` ["y", "Y"] -> return $ Right $ Finished trans
     | otherwise -> return $ Right $ Step $ AccountQuestion trans ""
 
 -- | Reverses the last step.
diff --git a/src/main/Main.hs b/src/main/Main.hs
--- a/src/main/Main.hs
+++ b/src/main/Main.hs
@@ -170,12 +170,12 @@
     _ -> return ()
   QuitDialog -> case ev of
     EvKey key []
-      | key `elem` [KChar 'y', KEnter] -> halt
+      | key `elem` [KChar 'y', KChar 'Y', KEnter] -> halt
       | otherwise -> asDialog .= NoDialog
     _ -> return ()
   AbortDialog -> case ev of
     EvKey key []
-      | key `elem` [KChar 'y', KEnter] -> do
+      | key `elem` [KChar 'y', KChar 'Y', KEnter] -> do
           asDialog .= NoDialog
           reset
       | otherwise -> asDialog .= NoDialog
diff --git a/tests/ModelSpec.hs b/tests/ModelSpec.hs
--- a/tests/ModelSpec.hs
+++ b/tests/ModelSpec.hs
@@ -193,7 +193,7 @@
         -- We use 'read' in the following because hledger-lib 1.19 changed the
         -- type of 'asprecision' from Int to 'AmountPrecision'. 'read' works in
         -- both cases.
-        a2 = (HL.eur 0.5) { HL.astyle = HL.amountstyle { HL.asprecision = Just (HL.Precision 15) } }
+        a2 = (HL.eur 0.5) { HL.astyle = HL.amountstyle { HL.asprecision = HL.Precision 15 } }
 
         p1 = mkPosting ("Test", -1)
         p2 = HL.nullposting { HL.paccount = "Toast", HL.pamount = HL.mixedAmount a1 }
