diff --git a/leksah-server.cabal b/leksah-server.cabal
--- a/leksah-server.cabal
+++ b/leksah-server.cabal
@@ -1,5 +1,5 @@
 name: leksah-server
-version: 0.12.1.1
+version: 0.12.1.2
 cabal-version: >= 1.10.2
 build-type: Simple
 license: GPL
@@ -41,6 +41,10 @@
                hslogger >= 1.0.7 && <1.2, network >=2.2 && <3.0, enumerator >=0.4.14 && < 0.5,
                attoparsec-enumerator >=0.3 && <0.4, attoparsec >=0.10.0.3 && <0.11,
                transformers >=0.2.2.0 && <0.4, strict >=0.3.2 && <0.4
+
+    if (impl(ghc >= 7.2))
+        binary-shared >=0.8.2
+
     if (impl(ghc >= 7.4))
        build-depends: haddock >= 2.7.2 && <2.11
     else
diff --git a/src/IDE/Core/Serializable.hs b/src/IDE/Core/Serializable.hs
--- a/src/IDE/Core/Serializable.hs
+++ b/src/IDE/Core/Serializable.hs
@@ -31,6 +31,7 @@
 import Distribution.Package (PackageName(..),PackageIdentifier(..))
 import Data.Version (Version(..))
 import Distribution.ModuleName (ModuleName)
+import MyMissing (forceJust)
 
 import IDE.Core.CTypes
 
@@ -233,7 +234,7 @@
 
 instance BinaryShared ModuleName where
     put    =  put . display
-    get    =  liftM (fromJust . simpleParse) get
+    get    =  liftM (flip forceJust "BinaryShared>>get(ModuleName)" . simpleParse) get
 
 instance BinaryShared PackageName where
     put (PackageName pn) =  put pn
diff --git a/src/IDE/Metainfo/PackageCollector.hs b/src/IDE/Metainfo/PackageCollector.hs
--- a/src/IDE/Metainfo/PackageCollector.hs
+++ b/src/IDE/Metainfo/PackageCollector.hs
@@ -44,9 +44,10 @@
 import Distribution.Text (display)
 import Control.Exception (SomeException,catch)
 #if defined(USE_LIBCURL)
-import Network.Curl (curlGetString, CurlCode(..))
+import Network.Curl (curlGetString_, CurlCode(..))
 import Control.Monad (when)
-import System.IO (withBinaryFile, IOMode(..), hPutStr)
+import System.IO (withBinaryFile, IOMode(..))
+import Data.ByteString (hPutStr)
 #else
 #ifdef MIN_VERSION_process_leksah
 import IDE.System.Process (system)
@@ -132,7 +133,7 @@
             debugM "leksah-server" $ "collectPackage: before retreiving = " ++ fullUrl
 #if defined(USE_LIBCURL)
             catch (do
-                (code, string) <- curlGetString fullUrl []
+                (code, string) <- curlGetString_ fullUrl []
                 when (code == CurlOK) $
                     withBinaryFile filePath WriteMode $ \ file -> do
                         hPutStr file string)
