diff --git a/LBState.hs b/LBState.hs
--- a/LBState.hs
+++ b/LBState.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE ScopedTypeVariables, PatternSignatures #-}
+{-# LANGUAGE ScopedTypeVariables #-}
 -- | Support for the LB (LambdaBot) monad
 module LBState (
         -- ** Functions to access the module's state
diff --git a/Plugin/Base.hs b/Plugin/Base.hs
--- a/Plugin/Base.hs
+++ b/Plugin/Base.hs
@@ -12,7 +12,7 @@
 
 import Control.Monad.State  (MonadState(..), when, gets)
 
-import GHC.IOBase           (Exception(NoMethodError))
+import Control.Exception    (Exception(NoMethodError))
 
 import qualified Data.ByteString.Char8 as P
 import qualified Text.Regex as R
diff --git a/Plugin/Compose.hs b/Plugin/Compose.hs
--- a/Plugin/Compose.hs
+++ b/Plugin/Compose.hs
@@ -11,7 +11,7 @@
 
 import Control.Monad.State
 import Control.Arrow (first)
-import GHC.IOBase   (Exception(NoMethodError))
+import Control.Exception   (Exception(NoMethodError))
 
 $(plugin "Compose")
 
diff --git a/Plugin/Dummy.hs b/Plugin/Dummy.hs
--- a/Plugin/Dummy.hs
+++ b/Plugin/Dummy.hs
@@ -21,7 +21,7 @@
         "bug"         -> "bug. Submit a bug to GHC's trac"
         "eval"        -> "eval. Do nothing (perversely)"
 
-        "id"          -> "id <arg>. The identiy plugin"
+        "id"          -> "id <arg>. The identity plugin"
         "read"        -> "read \"<foo>\". Print <foo>"
         "show"        -> "show <foo>. Print \"<foo>\""
         "wiki"        -> "wiki <page>. URLs of Haskell wiki pages"
@@ -40,6 +40,7 @@
         "shootout"    -> "shootout. The debian language shootout"
         "faq"         -> "faq. Answer frequently asked questions about Haskell"
         "choose"      -> "choose. Lambdabot featuring AI power"
+        "googleit"    -> "letmegooglethatforyou."
 
   process_ _ "eval"   _    = return []
   process_ _ "choose" []   = return ["Choose between what?"]
@@ -85,6 +86,7 @@
 
     ,("fptools",    lookupPackage "http://darcs.haskell.org/packages/" '/' "hs")
     ,("hackage",    lookupHackage)
+    ,("googleit",   lookupGoogle)
     ]
 
 lookupWiki :: String -> String
@@ -94,6 +96,15 @@
 lookupHackage :: String -> String
 lookupHackage "" = "http://hackage.haskell.org"
 lookupHackage xs = "http://hackage.haskell.org/cgi-bin/hackage-scripts/package/" ++ xs
+
+googlePrefix :: String
+googlePrefix = "http://letmegooglethatforyou.com"
+
+lookupGoogle :: String -> String
+lookupGoogle "" = googlePrefix
+lookupGoogle xs = googlePrefix ++ "/?q=" ++ quote xs
+ where
+    quote = map (\x -> if x == ' ' then '+' else x)
 
 docPrefix :: String
 docPrefix = "http://haskell.org/ghc/docs/latest/html/libraries/"
diff --git a/Plugin/Slap.hs b/Plugin/Slap.hs
--- a/Plugin/Slap.hs
+++ b/Plugin/Slap.hs
@@ -30,11 +30,13 @@
     ,(\_ -> "/me activates her slap-o-matic...")
     ,(\x -> "/me orders her trained monkeys to punch " ++ x)
     ,(\x -> "/me smashes a lamp on " ++ possesiveForm x ++ " head")
-    ,(\x -> "/me hits " ++ x ++ " with a hammer, so he breaks into a thousand pieces")
+    ,(\x -> "/me hits " ++ x ++ " with a hammer, so they breaks into a thousand pieces")
     ,(\x -> "/me throws some pointy lambdas at " ++ x)
     ,(\x -> "/me loves " ++ x ++ ", so no slapping")
     ,(\x -> "/me would never hurt " ++ x ++ "!")
     ,(\x -> "go slap " ++ x ++ " yourself")
+    ,(\_ -> "I won't; I want to go get some cookies instead.")
+    ,(\x -> "I'd rather not; " ++ x ++ " looks rather dangerous.")
     ,(\_ -> "I don't perform such side effects on command!")
     ,(\_ -> "stop telling me what to do")
     ,(\x -> "/me clobbers " ++ x ++ " with an untyped language")
diff --git a/Plugin/Todo.hs b/Plugin/Todo.hs
--- a/Plugin/Todo.hs
+++ b/Plugin/Todo.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE TemplateHaskell, MultiParamTypeClasses, PatternGuards, PatternSignatures, TypeSynonymInstances #-}
+{-# LANGUAGE TemplateHaskell, MultiParamTypeClasses, PatternGuards, ScopedTypeVariables, TypeSynonymInstances #-}
 -- | A todo list
 --
 -- (c) 2005 Samuel Bronson
diff --git a/lambdabot.cabal b/lambdabot.cabal
--- a/lambdabot.cabal
+++ b/lambdabot.cabal
@@ -1,5 +1,5 @@
 Name:                lambdabot
-Version:             4.2.2
+Version:             4.2.2.1
 License:             GPL
 License-file:        LICENSE
 Author:              Don Stewart
@@ -53,7 +53,10 @@
 -- Lambdabot main
 Executable          lambdabot
     Build-depends:       containers, directory, pretty, parsec, old-time, random, array, network,
-                         regex-compat, readline, binary>0.2, haskell-src, haskell-src-exts>=0.3.6, oeis, lambdabot-utils, show>=0.3, utf8-string,
+                         regex-compat, readline, binary>0.2, haskell-src,
+                         -- TODO: update Plugin.Eval for 0.4 and up
+                         haskell-src-exts>=0.3.6 && < 0.4,
+                         oeis, lambdabot-utils, show>=0.3, utf8-string, template-haskell,
                          -- runtime dependencies
                          brainfuck, unlambda, template-haskell
     Main-is:             Main.hs
