diff --git a/gitcache.cabal b/gitcache.cabal
--- a/gitcache.cabal
+++ b/gitcache.cabal
@@ -1,5 +1,5 @@
 Name:                gitcache
-Version:             0.2
+Version:             0.3
 Synopsis:            Simple git utility to use and manage clone cache
 Description:
     Manage cache of git repository for faster cloning and offline working
@@ -29,5 +29,5 @@
                    , filepath
                    , directory
                    , utf8-string
-                   , cryptohash
+                   , cryptonite
   default-language:  Haskell2010
diff --git a/src/gitcache.hs b/src/gitcache.hs
--- a/src/gitcache.hs
+++ b/src/gitcache.hs
@@ -16,14 +16,19 @@
 import System.FilePath
 import System.Process
 import System.Exit
-import "cryptohash" Crypto.Hash
+import Crypto.Hash
 import qualified Data.ByteString.UTF8 as UTF8
 
 urlToHash :: String -> String
 urlToHash url = show (hash (UTF8.fromString url) :: Digest SHA1)
 
 urlToName :: String -> String
-urlToName s = reverse $ fst $ break (== '/') $ reverse s
+urlToName s
+    | isPrefixOf "http://" s  = httpUrl
+    | isPrefixOf "https://" s = httpUrl
+    | otherwise               = sshUrl
+  where httpUrl = reverse $ fst $ break (== '/') $ reverse s
+        sshUrl  = httpUrl
 
 rawSystemEC s l = do
     ec <- rawSystem s l
@@ -80,7 +85,10 @@
     putStrLn (repoDir ++ ": " ++ maybe "error: cannot determine 'url'" id url)
 
 listCacheRepos gitCacheDir =
-    filter (not . flip elem [".",".."]) <$> getDirectoryContents gitCacheDir
+    (filter (not . flip elem [".",".."]) <$> getDirectoryContents gitCacheDir) >>= filterM isRepo
+  where isRepo path = do
+            dir <- doesDirectoryExist (gitCacheDir </> path)
+            if not dir then return False else doesFileExist (gitCacheDir </> path </> "config")
 
 initialization = do
     gitCacheDir <- getGitCacheDir
