diff --git a/ghc/lib/exts/ByteArray.lhs b/ghc/lib/exts/ByteArray.lhs
index 60c9fedd1fc9a9da6c294f9d66c80d382b6dcc48..6a900236264210f6a0ed3c942ac6544b93ce0c58 100644
--- a/ghc/lib/exts/ByteArray.lhs
+++ b/ghc/lib/exts/ByteArray.lhs
@@ -25,8 +25,7 @@ module ByteArray
 
 import PrelArr
 import PrelBase
-import PrelForeign
-import PrelStable
+import PrelStable( StablePtr(..) )
 import Ix
 \end{code}
 
diff --git a/ghc/lib/misc/FiniteMap.lhs b/ghc/lib/misc/FiniteMap.lhs
index 8436c8ccbbf28ce631b484f82240527b8f174a05..fda9b48dd220663994c7961454e638041f943347 100644
--- a/ghc/lib/misc/FiniteMap.lhs
+++ b/ghc/lib/misc/FiniteMap.lhs
@@ -627,8 +627,6 @@ glueVBal fm_l@(Branch key_l elt_l _ fm_ll fm_lr)
   | otherwise		-- We now need the same two cases as in glueBal above.
   = glueBal fm_l fm_r
   where
-    (mid_key_l,mid_elt_l) = findMax fm_l
-    (mid_key_r,mid_elt_r) = findMin fm_r
     size_l = sizeFM fm_l
     size_r = sizeFM fm_r
 \end{code}
diff --git a/ghc/lib/misc/SocketPrim.lhs b/ghc/lib/misc/SocketPrim.lhs
index 1d2f9c88bf007d5e3248ac7a84350e795836372a..23f6a4f6ac1d87d2f6934d9ca21786007bd62ed4 100644
--- a/ghc/lib/misc/SocketPrim.lhs
+++ b/ghc/lib/misc/SocketPrim.lhs
@@ -90,7 +90,7 @@ import Foreign
 import IO
 import IOExts	    ( IORef, newIORef, readIORef, writeIORef )
 import CString      ( unpackNBytesBAIO,
-		      unpackCString, unpackCStringIO,
+		      unpackCStringIO,
 		      unpackCStringLenIO,
 		      allocChars
 		    )