diff --git a/ghc/lib/exts/Addr.lhs b/ghc/lib/exts/Addr.lhs
index 917216748c59e66560642e74a3a01c2a199b6e33..848ddafaae4d50e0d2363d29b5aa205eb10081f6 100644
--- a/ghc/lib/exts/Addr.lhs
+++ b/ghc/lib/exts/Addr.lhs
@@ -37,6 +37,10 @@ import Int	( indexInt8OffAddr,  indexInt16OffAddr
 		)
 import PrelIOBase ( IO(..), IOResult(..) )
 
+#ifndef __PARALLEL_HASKELL__
+import PrelForeign ( ForeignObj(..) )
+#endif
+
 \end{code}
 
 Coercing between machine ints and words
@@ -125,6 +129,12 @@ writeAddrOffAddr   :: Addr -> Int -> Addr   -> IO ()
 writeAddrOffAddr (A# a#) (I# i#) (A# e#) = IO $ \ s# ->
       case (writeAddrOffAddr#  a# i# e# s#) of s2# -> IOok s2# () 
 
+#ifndef __PARALLEL_HASKELL__
+writeForeignObjOffAddr   :: Addr -> Int -> ForeignObj -> IO ()
+writeForeignObjOffAddr (A# a#) (I# i#) (ForeignObj e#) = IO $ \ s# ->
+      case (writeForeignObjOffAddr#  a# i# e# s#) of s2# -> IOok s2# () 
+#endif
+
 writeFloatOffAddr  :: Addr -> Int -> Float  -> IO ()
 writeFloatOffAddr (A# a#) (I# i#) (F# e#) = IO $ \ s# ->
       case (writeFloatOffAddr#  a# i# e# s#) of s2# -> IOok s2# ()