diff --git a/cabal-nirvana.cabal b/cabal-nirvana.cabal
--- a/cabal-nirvana.cabal
+++ b/cabal-nirvana.cabal
@@ -1,5 +1,5 @@
 Name:                cabal-nirvana
-Version:             0.2
+Version:             0.2.1
 Synopsis:            Avoid Cabal dependency hell by constraining to known good versions.
 Description:         This tool takes a list of known compatible versions of libraries and forces them to be used. This should bypass a lot of cabal dependency hell, thereby inducing nirvana.
                      .
@@ -34,6 +34,7 @@
                      , directory
                      , tar >= 0.4 && < 0.5
                      , bytestring
+  Other-modules:     Paths_cabal_nirvana
 
 Executable cabal-nirvana-generate
   Main-is:             generate.hs
diff --git a/cabal-nirvana.hs b/cabal-nirvana.hs
--- a/cabal-nirvana.hs
+++ b/cabal-nirvana.hs
@@ -4,7 +4,7 @@
 import Data.Maybe (catMaybes)
 import Data.Char (isSpace)
 import Data.List (isPrefixOf, foldl')
-import System.Exit (exitWith, ExitCode (ExitSuccess))
+import System.Exit (exitWith, ExitCode (ExitSuccess), exitFailure)
 import System.Cmd (rawSystem)
 import Network.HTTP (simpleHTTP, getRequest, getResponseBody)
 import qualified Data.ByteString.Lazy as L
@@ -13,7 +13,12 @@
 import qualified Data.Map as Map
 import Control.Monad (unless)
 import Data.Maybe (fromMaybe)
+import qualified Paths_cabal_nirvana
+import Data.Version (showVersion)
 
+currVersion :: String
+currVersion = showVersion Paths_cabal_nirvana.version
+
 indexFile :: IO FilePath
 indexFile = do
     dir <- getAppUserDataDirectory "cabal"
@@ -91,7 +96,7 @@
     str <- simpleHTTP (getRequest url) >>= getResponseBody
     nirvanaFile >>= flip writeFile str
   where
-    url = fromMaybe "http://www.snoyman.com/cabal-nirvana/yesod" murl
+    url = fromMaybe "http://yesodweb.github.com/nirvana" murl
 
 start :: Maybe String -> IO ()
 start mnfp = do
@@ -107,16 +112,22 @@
       where
         go front Tar.Done = return $ front []
         go _ (Tar.Fail e) = throwIO e
-        go front (Tar.Next e es) =
-            go front' es
+        go front (Tar.Next e es)
+            | p == "cabal-nirvana" && v /= currVersion = do
+                putStrLn "Your version of cabal-nirvana is out-of-date."
+                putStrLn $ "Your version: " ++ currVersion
+                putStrLn $ "Latest version: " ++ v
+                putStrLn "Please update by running:"
+                putStrLn "    cabal install cabal-nirvana"
+                exitFailure
+            | otherwise = go front' es
           where
             fp = Tar.entryPath e
             (p, fp') = break (== '/') fp
             v = takeWhile (/= '/') $ drop 1 fp'
-            front' =
-                if toRemove p v
-                    then front
-                    else front . (e:)
+            front'
+                | toRemove p v = front
+                | otherwise = front . (e:)
 
         toRemove _ "" = False
         toRemove p v =
