diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,11 @@
 # Changelog
 
+## 0.4.1 - 2024-04-07:
+
+* fix: Restore terminal state properly after exiting (thanks @Atemu, issue: [#88])
+
+[#88]: https://github.com/utdemir/nix-tree/issues/88
+
 ## 0.4.0 - 2024-01-21:
 
 * feat: Allow passing `--store` for alternative nix store (e.g. remote binary cache) (thanks @bryango, PR: [#79][])
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -1,7 +1,7 @@
 # nix-tree
 
 ![Build Status](https://github.com/utdemir/nix-tree/workflows/nix-build/badge.svg)
-[![Packaging status](https://repology.org/badge/vertical-allrepos/haskell:nix-tree.svg)](https://repology.org/project/haskell:nix-tree/versions)
+[![Packaging status](https://repology.org/badge/vertical-allrepos/haskell:nix-tree.svg?exclude_unsupported=1)](https://repology.org/project/haskell:nix-tree/versions)
 
 Interactively browse dependency graphs of Nix derivations.
 
diff --git a/nix-tree.cabal b/nix-tree.cabal
--- a/nix-tree.cabal
+++ b/nix-tree.cabal
@@ -3,7 +3,7 @@
 name:                nix-tree
 synopsis:            Interactively browse a Nix store paths dependencies
 description:         A terminal curses application to browse a Nix store paths dependencies
-version:             0.4.0
+version:             0.4.1
 homepage:            https://github.com/utdemir/nix-tree
 license:             BSD-3-Clause
 license-file:        LICENSE
diff --git a/src/NixTree/App.hs b/src/NixTree/App.hs
--- a/src/NixTree/App.hs
+++ b/src/NixTree/App.hs
@@ -134,7 +134,8 @@
       return ()
 
   -- And run the application
-  _ <- B.customMainWithDefaultVty (Just chan) app appEnv
+  (_, vty) <- B.customMainWithDefaultVty (Just chan) app appEnv
+  V.shutdown vty
 
   return ()
 
@@ -194,7 +195,7 @@
             Just (ModalNotice notice) -> renderNotice notice,
           renderMainScreen env
         ],
-      B.appChooseCursor = \_ -> const Nothing,
+      B.appChooseCursor = \_ _ -> Nothing,
       B.appHandleEvent = \e -> do
         s <- get
         case (e, aeOpenModal s) of
