diff --git a/AUTHORS b/AUTHORS
--- a/AUTHORS
+++ b/AUTHORS
@@ -14,3 +14,5 @@
 Mark Wright
 Bertram Felgenhauer
 Samuel Gélineau
+Jens Petersen
+Corentin Dupont
diff --git a/CHANGELOG.markdown b/CHANGELOG.markdown
--- a/CHANGELOG.markdown
+++ b/CHANGELOG.markdown
@@ -1,3 +1,8 @@
+0.4.2.1
+-------
+
+ * Better error reporting (thanks to Corentin Dupont)
+
 0.4.2.0
 -------
 
diff --git a/README b/README
--- a/README
+++ b/README
@@ -26,3 +26,6 @@
 
 darcs get http://hub.darcs.net/jcpetruzza/hint
 
+
+If you report an issue, please send me an email as well, since
+otherwise I get no notifications...
diff --git a/hint.cabal b/hint.cabal
--- a/hint.cabal
+++ b/hint.cabal
@@ -1,5 +1,5 @@
 name:                hint
-version:             0.4.2.0
+version:             0.4.2.1
 description:
         This library defines an @Interpreter@ monad. It allows to load Haskell
         modules, browse them, type-check and evaluate strings with Haskell
@@ -7,7 +7,7 @@
         thread-safe and type-safe (even the coercion of expressions to
         values).
 
-        It is, esentially, a huge subset of the GHC API wrapped in a simpler
+        It is, essentially, a huge subset of the GHC API wrapped in a simpler
         API. 
 synopsis:           Runtime Haskell interpreter (GHC API wrapper)
 category:           Language, Compilers/Interpreters
diff --git a/src/Hint/GHC.hs b/src/Hint/GHC.hs
--- a/src/Hint/GHC.hs
+++ b/src/Hint/GHC.hs
@@ -42,7 +42,7 @@
                       showSDoc, showSDocForUser, showSDocUnqual,
                       withPprStyle, defaultErrStyle )
 
-import ErrUtils     ( mkLocMessage  )
+import ErrUtils     ( mkLocMessage, pprErrMsgBagWithLoc)
 #if __GLASGOW_HASKELL__ < 706
 import ErrUtils     ( Message )
 #else
diff --git a/src/Hint/InterpreterT.hs b/src/Hint/InterpreterT.hs
--- a/src/Hint/InterpreterT.hs
+++ b/src/Hint/InterpreterT.hs
@@ -82,15 +82,17 @@
 runGhc_impl a =
   InterpreterT (lift a)
    `catches`
-   [Handler (\(e :: GHC.SourceError)  -> throwM $ compilationError e)
+   [Handler (\(e :: GHC.SourceError)  -> do
+     dynFlags <- runGhc GHC.getSessionDynFlags
+     throwM $ compilationError dynFlags e)
    ,Handler (\(e :: GHC.GhcApiError)  -> throwM $ GhcException $ show e)
    ,Handler (\(e :: GHC.GhcException) -> throwM $ GhcException $ showGhcEx e)
    ]
   where
-    compilationError
+    compilationError dynFlags
       = WontCompile
-      . map (GhcError . show)
-      . GHC.bagToList
+      . map (GhcError . GHC.showSDoc dynFlags)
+      . GHC.pprErrMsgBagWithLoc
       . GHC.srcErrorMessages
 #endif
 
