diff --git a/CHANGES.txt b/CHANGES.txt
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,5 +1,7 @@
 Changelog for Hoogle
 
+4.2.39
+    #106, shake-0.15 compatibility
 4.2.38
     #96, allow certicate verification failures
     #95, allow a higher version of Cabal on older GHCs
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -1,5 +1,7 @@
 # Hoogle [![Hackage version](https://img.shields.io/hackage/v/hoogle.svg?style=flat)](https://hackage.haskell.org/package/hoogle) [![Build Status](https://img.shields.io/travis/ndmitchell/hoogle.svg?style=flat)](https://travis-ci.org/ndmitchell/hoogle)
 
+**NOTE: This code branch contains the code for the Hoogle v4 series. The `master` branch contains the code for the current Hoogle v5 series.**
+
 Hoogle is a Haskell API search engine, which allows you to search many standard Haskell libraries by either function name, or by approximate type signature. To experiment, visit the online version at http://haskell.org/hoogle.
 
 * **Online version:** http://haskell.org/hoogle
diff --git a/docs/LICENSE b/docs/LICENSE
--- a/docs/LICENSE
+++ b/docs/LICENSE
@@ -1,4 +1,4 @@
-Copyright Neil Mitchell 2004-2014.
+Copyright Neil Mitchell 2004-2015.
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
diff --git a/hoogle.cabal b/hoogle.cabal
--- a/hoogle.cabal
+++ b/hoogle.cabal
@@ -1,13 +1,13 @@
 cabal-version:      >= 1.10
 build-type:         Simple
 name:               hoogle
-version:            4.2.38
+version:            4.2.39
 license:            BSD3
 license-file:       docs/LICENSE
 category:           Development
 author:             Neil Mitchell <ndmitchell@gmail.com>
 maintainer:         Neil Mitchell <ndmitchell@gmail.com>
-copyright:          Neil Mitchell 2004-2014
+copyright:          Neil Mitchell 2004-2015
 synopsis:           Haskell API Search
 description:
     Hoogle is a Haskell API search engine, which allows you to
@@ -15,7 +15,7 @@
     or by approximate type signature.
 homepage:           http://www.haskell.org/hoogle/
 bug-reports:        https://github.com/ndmitchell/hoogle/issues
-tested-with:        GHC==7.10.1, GHC==7.8.3, GHC==7.6.3
+tested-with:        GHC==7.10.1, GHC==7.8.4, GHC==7.6.3
 extra-source-files:
     README.md
     CHANGES.txt
diff --git a/src/General/Base.hs b/src/General/Base.hs
--- a/src/General/Base.hs
+++ b/src/General/Base.hs
@@ -7,8 +7,6 @@
 import Prelude as X
 #if __GLASGOW_HASKELL__ < 710
 import Control.Applicative as X ((<*>),(<$>))
-#else
-import Control.Applicative as X ((<$>))
 #endif
 import Control.Arrow as X
 import Control.DeepSeq as X
diff --git a/src/General/FMIndex.hs b/src/General/FMIndex.hs
--- a/src/General/FMIndex.hs
+++ b/src/General/FMIndex.hs
@@ -12,6 +12,7 @@
 import Control.Applicative
 import Control.Arrow
 import System.IO
+import Prelude
 
 
 data FMIndex a = FMIndex Char [(BS.ByteString, a)] deriving Show
diff --git a/src/Recipe/All.hs b/src/Recipe/All.hs
--- a/src/Recipe/All.hs
+++ b/src/Recipe/All.hs
@@ -21,11 +21,11 @@
 import Hoogle
 import qualified Paths_hoogle as V
 import Data.Version
-import CmdLine.All
+import CmdLine.All as C
 
 
 -- CmdLine is guaranteed to be a constructor of type Data
-recipes :: CmdLine -> IO ()
+recipes :: C.CmdLine -> IO ()
 recipes opt@Data{..} = withModeGlobalRead $ do
     hSetBuffering stdout NoBuffering
     createDirectoryIfMissing True datadir
@@ -45,7 +45,7 @@
 newtype CabalVersion = CabalVersion String deriving (Show,Typeable,Eq,Hashable,Binary,NFData)
 newtype HoogleVersion = HoogleVersion String deriving (Show,Typeable,Eq,Hashable,Binary,NFData)
 
-rules :: CmdLine -> ([String] -> IO ()) -> Rules ()
+rules :: C.CmdLine -> ([String] -> IO ()) -> Rules ()
 rules opts@Data{..} warn = do
     let srcCabal name ver = "downloads/cabal" </> name </> ver </> name <.> "cabal"
     let srcHoogle name ver = "downloads/hoogle" </> name </> ver </> "doc" </> "html" </> name <.> "txt"
@@ -178,7 +178,7 @@
                 liftIO $ warn [takeBaseName out ++ ": " ++ show e | e <- err]
 
 
-urls :: CmdLine -> [(FilePath, URL)]
+urls :: C.CmdLine -> [(FilePath, URL)]
 urls Data{..} = let (*) = (,) in
     ["keyword.htm" * "http://www.haskell.org/haskellwiki/Keywords"
     ,"platform.cabal" * "http://code.galois.com/darcs/haskell-platform/haskell-platform.cabal"
diff --git a/src/Recipe/Command.hs b/src/Recipe/Command.hs
--- a/src/Recipe/Command.hs
+++ b/src/Recipe/Command.hs
@@ -6,10 +6,10 @@
 import General.System
 import Development.Shake
 import Development.Shake.FilePath
-import CmdLine.All
+import CmdLine.All as C
 
 
-wget :: CmdLine -> URL -> FilePath -> Action ()
+wget :: C.CmdLine -> URL -> FilePath -> Action ()
 wget opt@Data{..} from to = do
     when nodownload $
          error "Downloads are disabled."
