diff --git a/Data/Bff.hs b/Data/Bff.hs
--- a/Data/Bff.hs
+++ b/Data/Bff.hs
@@ -21,7 +21,7 @@
 import qualified Data.IntMapOrd as IntMapOrd (union, lookup, fromAscPairList, empty, checkInsert, lookupR)
 import Data.Set (Set)
 import qualified Data.Set as Set (toAscList, singleton)
-import Maybe (fromJust)
+import Data.Maybe (fromJust)
 import Control.Monad.State (State, runState)
 import qualified Control.Monad.State as State (get, put)
 import Control.Applicative 
diff --git a/MyInterpret.hs b/MyInterpret.hs
--- a/MyInterpret.hs
+++ b/MyInterpret.hs
@@ -8,11 +8,11 @@
          where 
 
 import Language.Haskell.Interpreter
-import Language.Haskell.Interpreter.GHC.Unsafe
+import Language.Haskell.Interpreter.Unsafe
 
 import Prelude hiding (catch)
 import Control.Concurrent
-import Control.Exception
+import Control.OldException
 import Control.Monad
 import Control.Monad.Error
 import System.Posix.Signals
@@ -67,23 +67,25 @@
         when (unsafe exp) $ throwDyn (MyException "Indicators for unsafe computations found in exp")
 
 	eResult <- runInterpreter $ do
-                setUseLanguageExtensions False
+                --setUseLanguageExtensions False
+                set [languageExtensions := []]
 		-- Not available in hint-3.2?
                 -- setOptimizations All
 
                 reset
                 -- no need for temporary files I hope
-                setInstalledModsAreInScopeQualified True 
+                --setInstalledModsAreInScopeQualified True 
+                set [installedModulesInScope := True]
 	
 		unsafeSetGhcOption "-fno-monomorphism-restriction"
                 
                 setImports modules
                 
-		liftIO $ putStrLn exp
+--		liftIO $ putStrLn exp
                 todo exp
 	
 	case eResult of
-		Left exception -> throw exception
+		Left exception -> throwDyn exception
 		Right result -> return result
         
 formatInterpreterError (UnknownError s) = "Unknown Interpreter Error " ++ s
diff --git a/bff-cgi.hs b/bff-cgi.hs
--- a/bff-cgi.hs
+++ b/bff-cgi.hs
@@ -19,10 +19,10 @@
 	maindiv << (
         	p << ("This tool allows you to experiment with the "+++
                       "method described in the paper “" +++
-		      hotlink "http://wwwtcs.inf.tu-dresden.de/~voigt/popl09-2.pdf"
+                      hotlink "http://www.iai.uni-bonn.de/~jv/popl09-2.pdf"
                         << "Bidirectionalization for Free!" +++
 		      "” (POPL'09) by " +++
-		      hotlink "http://wwwtcs.inf.tu-dresden.de/~voigt/"
+                      hotlink "http://www.iai.uni-bonn.de/~jv/"
                         << "Janis Voigtländer" +++
 	              "."
 		)
@@ -35,7 +35,9 @@
 				"You need to define " +++ tt << "source" +++ " and " +++
 				tt << "get" +++ ". The code is evaluated inside a " +++
 				tt << "let" +++ " block, so you can define functions by "+++
-				"pattern matching, but you cannot define new data types. "+++				      "The type classes required by the bidirectionalization functions are defined for " +++ tt << "Maybe" +++
+				"pattern matching, but you cannot define new data types. "+++
+                                "The type classes required by the bidirectionalization functions are defined for " +++ 
+                                tt << "Maybe" +++
 				", " +++ tt << "[]" +++ ", and this simple tree type:" +++
 				pre << "data Tree a = Leaf a | Node (Tree a) (Tree a)" 
 			) +++
diff --git a/bff.cabal b/bff.cabal
--- a/bff.cabal
+++ b/bff.cabal
@@ -1,5 +1,5 @@
 name:           bff
-version:        0.3
+version:        0.3.1
 license:        PublicDomain
 description:
         This is an implementation of the ideas presented in "Bidirectionalization
@@ -55,7 +55,7 @@
                 Data.Derive.Zippable
                 Data.Zippable.Definition
         build-depends:
-                base >= 2 && < 4, containers, mtl, template-haskell, category-extras >= 0.53.5, derive >= 0.1.1,
+                base >= 2 && < 5, containers, mtl, template-haskell, category-extras >= 0.53.5, derive == 0.1.1,
                 haskell98, bimap >= 0.2.3, unix
         
 executable bff-shell
@@ -65,7 +65,7 @@
                 MyInterpret
         if flag(binaries)
                 build-depends:
-                        base >= 2 && < 4, directory, hint >= 0.3.2
+                        base >= 2 && < 5, directory, hint >= 0.3.2
                 buildable: True 
         else
                 buildable: False
@@ -77,7 +77,7 @@
                 MyInterpret
         if flag(binaries)
                 build-depends:
-                        base >= 2 && < 4, directory, xhtml, cgi, hint >= 0.3.2, utf8-string
+                        base >= 2 && < 5, directory, xhtml, cgi, hint >= 0.3.2, utf8-string
                 buildable: True 
         else
                 buildable: False
