diff --git a/dist/build/lhc/lhc-tmp/FrontEnd/HsParser.hs b/dist/build/lhc/lhc-tmp/FrontEnd/HsParser.hs
--- a/dist/build/lhc/lhc-tmp/FrontEnd/HsParser.hs
+++ b/dist/build/lhc/lhc-tmp/FrontEnd/HsParser.hs
@@ -20,7 +20,7 @@
 import GlaExts
 #endif
 
--- parser produced by Happy Version 1.17
+-- parser produced by Happy Version 1.18.2
 
 newtype HappyAbsSyn  = HappyAbsSyn HappyAny
 #if __GLASGOW_HASKELL__ >= 607
@@ -856,10 +856,10 @@
 happyOut142 :: (HappyAbsSyn ) -> (HsName)
 happyOut142 x = unsafeCoerce# x
 {-# INLINE happyOut142 #-}
-happyInTok :: Token -> (HappyAbsSyn )
+happyInTok :: (Token) -> (HappyAbsSyn )
 happyInTok x = unsafeCoerce# x
 {-# INLINE happyInTok #-}
-happyOutTok :: (HappyAbsSyn ) -> Token
+happyOutTok :: (HappyAbsSyn ) -> (Token)
 happyOutTok x = unsafeCoerce# x
 {-# INLINE happyOutTok #-}
 
@@ -4406,7 +4406,7 @@
 happyThen1 = happyThen
 happyReturn1 :: () => a -> P a
 happyReturn1 = happyReturn
-happyError' :: () => Token -> P a
+happyError' :: () => (Token) -> P a
 happyError' tk = (\token -> happyError) tk
 
 parse = happySomeParser where
@@ -4454,7 +4454,7 @@
 {-# LINE 1 "templates/GenericTemplate.hs" #-}
 {-# LINE 1 "templates/GenericTemplate.hs" #-}
 {-# LINE 1 "<built-in>" #-}
-{-# LINE 1 "<command-line>" #-}
+{-# LINE 1 "<command line>" #-}
 {-# LINE 1 "templates/GenericTemplate.hs" #-}
 -- Id: GenericTemplate.hs,v 1.26 2005/01/14 14:47:22 simonmar Exp 
 
diff --git a/lhc.cabal b/lhc.cabal
--- a/lhc.cabal
+++ b/lhc.cabal
@@ -1,6 +1,6 @@
 cabal-version:       >= 1.6
 name:                lhc
-version:             0.6.20081211.1
+version:             0.6.20081211.2
 synopsis:            LHC Haskell Compiler
 description:
   lhc is a haskell compiler which aims to produce the most efficient programs possible via whole
diff --git a/src/Ho/Build.hs b/src/Ho/Build.hs
--- a/src/Ho/Build.hs
+++ b/src/Ho/Build.hs
@@ -555,7 +555,7 @@
     let fopts s = s `member` optFOptsSet initialOpts
         initialOpts = f (take 4096 txt)
         incFlags = [ "-I" ++ d | d <- optIncdirs options ++ optIncs initialOpts]
-        defFlags = ("-D__LHC__=" ++ revision):[ "-D" ++ d | d <- optDefs initialOpts]
+        defFlags = ("-D__LHC__=" ++ version):[ "-D" ++ d | d <- optDefs initialOpts]
 
     s <- case () of
         _ | fopts FO.Cpp -> readSystem "cpp" $ ["-CC","-traditional"] ++ incFlags ++ defFlags ++ [fn]
diff --git a/src/LHCVersion.hs b/src/LHCVersion.hs
--- a/src/LHCVersion.hs
+++ b/src/LHCVersion.hs
@@ -8,8 +8,7 @@
 package        = "lhc"
 tag            = "zhu"
 version        = showVersion P.version
-shortVersion   = concat $ intersperse "." $ map show $ init $ versionBranch P.version
-revision       = show $ tail $ versionBranch P.version
+shortVersion   = concat $ intersperse "." $ map show $ take 3 $ versionBranch P.version
 
 -- | Simple version string
 {-# NOINLINE versionSimple #-}
diff --git a/src/Options.hs b/src/Options.hs
--- a/src/Options.hs
+++ b/src/Options.hs
@@ -284,7 +284,7 @@
     h <- lookupEnv "HOME"
     l <- getAppUserDataDirectory "lhc"
     let paths = h ++ ["/usr/local","/usr"]
-        bases = ["/lib","/share"]
+        bases = ["/lib","/share","/.cabal/lib"]
         vers = ["/lhc-" ++ shortVersion, "/lhc"]
     return $ nub $ maybe [] (tokens (':' ==))  ps ++ (l ++ "/lhc-" ++ shortVersion):[ p ++ b ++ v | b <- bases, p <- paths, v <- vers ]
 
