diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,3 +1,10 @@
+# 1.2.6
+
+  - Fix build with hledger-lib >= 1.3.1
+  - Support for megaparsec-6.1
+  - Support for brick <= 0.24
+  - Fix test suite with ghc 8.2
+
 # 1.2.5
 
   - Fix broken release tarball
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.2.5
+version:             1.2.6
 synopsis:            A terminal UI as drop-in replacement for hledger add
 description:         This is a terminal UI as drop-in replacement for hledger add.
                      .
@@ -58,7 +58,7 @@
   default-language:    Haskell2010
   build-depends:       base >= 4.8 && < 5
                      , hledger-lib >= 1.0 && < 1.4
-                     , brick >= 0.17 && < 0.21
+                     , brick >= 0.17 && < 0.25
                      , vty >= 5.4
                      , text
                      , microlens
@@ -67,7 +67,7 @@
                      , transformers >= 0.3
                      , time >= 1.5
                      , vector
-                     , megaparsec >= 5.0 && <6.1
+                     , megaparsec >= 5.0 && <6.2
                      , containers
                      , optparse-applicative
                      , directory
@@ -81,11 +81,12 @@
 executable hledger-iadd
   hs-source-dirs:      src/main
   main-is:             Main.hs
+  other-modules:       Paths_hledger_iadd
   default-language:    Haskell2010
   build-depends:       base >= 4.8 && < 5
                      , hledger-iadd
                      , hledger-lib >= 1.0 && < 1.4
-                     , brick >= 0.17 && < 0.21
+                     , brick >= 0.17 && < 0.25
                      , vty >= 5.4
                      , text
                      , microlens
@@ -99,7 +100,7 @@
                      , xdg-basedir
                      , unordered-containers
                      , free >= 4.12.4
-                     , megaparsec >= 5.0 && <6.1
+                     , megaparsec >= 5.0 && <6.2
   ghc-options:         -threaded -Wall -fdefer-typed-holes -fno-warn-name-shadowing
 
 test-suite spec
@@ -122,6 +123,6 @@
                     , QuickCheck
                     , text-format
                     , free >= 4.12.4
-                    , megaparsec >= 5.0 && <6.1
+                    , megaparsec >= 5.0 && <6.2
                     , text-zipper >= 0.10
   ghc-options:        -threaded -Wall -fdefer-typed-holes -fno-warn-name-shadowing
diff --git a/src/AmountParser.hs b/src/AmountParser.hs
--- a/src/AmountParser.hs
+++ b/src/AmountParser.hs
@@ -1,3 +1,5 @@
+{-# LANGUAGE CPP #-}
+
 module AmountParser (parseAmount) where
 
 import           Data.Text (Text)
@@ -6,7 +8,11 @@
 import           Control.Monad.Trans.State.Strict
 import           Text.Megaparsec.Compat hiding (Parser)
 
+#if MIN_VERSION_hledger_lib(1,3,1)
+type Parser a = HL.JournalParser Identity a
+#else
 type Parser a = HL.JournalStateParser Identity a
+#endif
 
 parseAmount :: HL.Journal -> Text -> Either String HL.MixedAmount
 parseAmount journal t = case runIdentity $ runParserT (evalStateT (mixed <* optional space <* eof) journal) "" t of
diff --git a/src/main/Main.hs b/src/main/Main.hs
--- a/src/main/Main.hs
+++ b/src/main/Main.hs
@@ -6,47 +6,61 @@
 
 module Main where
 
-import           Brick
-import           Brick.Widgets.Border
-import           Brick.Widgets.BetterDialog
-import           Brick.Widgets.Edit.EmacsBindings
-import           Brick.Widgets.List
-import           Brick.Widgets.List.Utils
-import           Graphics.Vty hiding (parseConfigFile, (<|>))
+import Brick
+  ( Widget, App(..), AttrMap, BrickEvent(..), Next, EventM
+  , (<=>), (<+>), txt, continue, halt, attrMap, on, fg
+  , defaultMain, showFirstCursor, padBottom, Padding(Max)
+  )
+import Brick.Widgets.BetterDialog (dialog)
+import Brick.Widgets.Border (hBorder)
+import Brick.Widgets.Edit.EmacsBindings
+  ( Editor, renderEditor, handleEditorEvent, getEditContents, editContentsL
+  , editorText
+  )
+import Brick.Widgets.List
+  ( List, listMoveDown, listMoveUp, listMoveTo, listSelectedElement
+  , listSelectedAttr, list
+  )
+import Brick.Widgets.List.Utils (listSimpleReplace)
+import Graphics.Vty
+  (Event(EvKey), Modifier(MCtrl,MMeta), Key(..), defAttr, black, white, green)
 
-import           Control.Exception
-import           Control.Monad
-import           Control.Monad.IO.Class
-import           Control.Monad.Trans.Except
-import           Data.Functor.Identity
-import           Data.Maybe
-import           Data.Monoid
-import           Data.Text (Text)
+import Control.Exception (SomeException, try)
+import Control.Monad (msum, when, void)
+import Control.Monad.IO.Class (liftIO)
+import Control.Monad.Trans.Except (runExceptT)
+import Data.Functor.Identity (Identity(..), runIdentity)
+import Data.Maybe (fromMaybe, fromJust)
+import Data.Monoid ((<>), First(..), getFirst)
+import Data.Text (Text)
 import qualified Data.Text as T
 import qualified Data.Text.IO as T
-import           Data.Text.Zipper
+import Data.Text.Zipper (gotoEOL, textZipper)
 import qualified Data.Vector as V
 import qualified Hledger as HL
 import qualified Hledger.Read.JournalReader as HL
-import           Lens.Micro
+import Lens.Micro ((&), (.~))
 import qualified Options.Applicative as OA
-import           Options.Applicative hiding (str, option)
-import           System.Directory
-import           System.Environment
-import           System.Environment.XDG.BaseDir
-import           System.Exit
-import           System.IO
+import Options.Applicative
+  ( ReadM, Parser, value, help, long, metavar, switch, helper, fullDesc, info
+  , header, short, (<|>), eitherReader, execParser
+  )
+import System.Directory (getHomeDirectory)
+import System.Environment (lookupEnv)
+import System.Environment.XDG.BaseDir (getUserConfigFile)
+import System.Exit (exitFailure, exitSuccess)
+import System.IO (hPutStr, hPutStrLn, stderr)
 -- explicit package import since hledger-lib defines the same module
 import qualified "hledger-iadd" Text.Megaparsec.Compat as P
 
-import           Brick.Widgets.HelpMessage
-import           Brick.Widgets.CommentDialog
-import           DateParser
-import           ConfigParser hiding (parseConfigFile)
-import           Model
-import           View
+import Brick.Widgets.CommentDialog
+import Brick.Widgets.HelpMessage
+import ConfigParser hiding (parseConfigFile)
+import DateParser
+import Model
+import View
 
-import           Data.Version (showVersion)
+import Data.Version (showVersion)
 import qualified Paths_hledger_iadd as Paths
 
 data AppState = AppState
@@ -493,7 +507,7 @@
     Left err -> do
       hPutStr stderr "Could not parse date format: "
       T.hPutStr stderr err
-      exitWith (ExitFailure 1)
+      exitFailure
     Right res -> return res
 
   let path = runIdentity $ optLedgerFile opts
diff --git a/tests/AmountParserSpec.hs b/tests/AmountParserSpec.hs
--- a/tests/AmountParserSpec.hs
+++ b/tests/AmountParserSpec.hs
@@ -5,7 +5,7 @@
 import           Test.Hspec
 
 import           Control.Monad.Trans.State.Strict
-import           Data.Either
+import           Data.Either (either, isLeft)
 import           Data.Functor.Identity
 import           Data.Text (Text)
 import qualified Hledger as HL
