diff --git a/lib/GHCup.hs b/lib/GHCup.hs
index 8b59840d45a0df43089a0ab94af7446049e51ba7..591f3443d16b39d553b1614fba7659e541f08090 100644
--- a/lib/GHCup.hs
+++ b/lib/GHCup.hs
@@ -1187,18 +1187,18 @@ listVersions lt' criteria = do
         latestVer  = fst <$> headOf (getTagged Latest) av
         recommendedVer = fst <$> headOf (getTagged Latest) av
         isOld  = maybe True (> currentVer) latestVer && maybe True (> currentVer) recommendedVer
-    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
-                                    }
+    in if | Map.member currentVer av -> Nothing
+          | otherwise -> Just $ 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