diff --git a/CHANGELOG.md b/CHANGELOG.md
index 39d3285497326fa10fb890fdcdb67a0fe73bfd17..c10311710032f120456a8a1aa4ed1b5467483206 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,6 +1,6 @@
 # Revision history for ghcup
 
-## 0.1.16 -- 2021-07-28
+## 0.1.16.1 -- 2021-07-29
 
 * Add 'nuke' subcommand wrt [#135](https://gitlab.haskell.org/haskell/ghcup-hs/-/issues/135), implemented by Arjun Kathuria
 * Add uninstallation powershell script on windows wrt [#150](https://gitlab.haskell.org/haskell/ghcup-hs/-/issues/150)
diff --git a/ghcup.cabal b/ghcup.cabal
index 822d73e2d062d0b86ad92a84d51e37736f478555..be8bdf48bfc0ae84b4e46001b251b1ac6ae14fc8 100644
--- a/ghcup.cabal
+++ b/ghcup.cabal
@@ -1,6 +1,6 @@
 cabal-version:   3.0
 name:            ghcup
-version:         0.1.16
+version:         0.1.16.1
 license:         LGPL-3.0-only
 license-file:    LICENSE
 copyright:       Julian Ospald 2020
diff --git a/lib/GHCup.hs b/lib/GHCup.hs
index b6c2e91735ba7802e7000347f3496fcbf04f1e84..8b59840d45a0df43089a0ab94af7446049e51ba7 100644
--- a/lib/GHCup.hs
+++ b/lib/GHCup.hs
@@ -1019,8 +1019,8 @@ listVersions lt' criteria = do
             slr <- strayStacks avTools sSet stacks
             pure (sort (slr ++ lr))
           GHCup -> do
-            let cg = currentGHCup avTools
-            pure (sort (cg : lr))
+            let cg = maybeToList $ currentGHCup avTools
+            pure (sort (cg ++ lr))
       Nothing -> do
         ghcvers   <- go (Just GHC) cSet cabals hlsSet' hlses sSet stacks
         cabalvers <- go (Just Cabal) cSet cabals hlsSet' hlses sSet stacks
@@ -1180,24 +1180,25 @@ listVersions lt' criteria = do
           [i|Could not parse version of stray directory #{e}|]
         pure Nothing
 
-  currentGHCup :: Map.Map Version VersionInfo -> ListResult
+  currentGHCup :: Map.Map Version VersionInfo -> Maybe ListResult
   currentGHCup av =
     let currentVer = pvpToVersion ghcUpVer
         listVer    = Map.lookup currentVer av
         latestVer  = fst <$> headOf (getTagged Latest) av
         recommendedVer = fst <$> headOf (getTagged Latest) av
         isOld  = maybe True (> currentVer) latestVer && maybe True (> currentVer) recommendedVer
-    in ListResult { lVer    = currentVer
-                  , lTag    = maybe (if isOld then [Old] else []) _viTags listVer
-                  , lCross  = Nothing
-                  , lTool   = GHCup
-                  , fromSrc = False
-                  , lStray  = isNothing listVer
-                  , lSet    = True
-                  , lInstalled = True
-                  , lNoBindist = False
-                  , hlsPowered = False
-                  }
+    in if | currentVer == listVer -> Nothing
+          | otherwise -> ListResult { lVer    = currentVer
+                                    , lTag    = maybe (if isOld then [Old] else []) _viTags listVer
+                                    , lCross  = Nothing
+                                    , lTool   = GHCup
+                                    , fromSrc = False
+                                    , lStray  = isNothing listVer
+                                    , lSet    = True
+                                    , lInstalled = True
+                                    , lNoBindist = False
+                                    , hlsPowered = False
+                                    }
 
   -- NOTE: this are not cross ones, because no bindists
   toListResult :: ( MonadLogger m