diff --git a/System/Posix/Signals.hsc b/System/Posix/Signals.hsc
index 463dfc708b2e63e2c7bb10b644b083b287ad1995..91e642f4891f63790d781034dbfc28bccf3a4c4a 100644
--- a/System/Posix/Signals.hsc
+++ b/System/Posix/Signals.hsc
@@ -598,7 +598,7 @@ awaitSignal maybe_sigset = do
   -- XXX My manpage says it can also return EFAULT. And why is ignoring
   -- EINTR the right thing to do?
 
-foreign import capi unsafe "HsUnix.h sigsuspend"
+foreign import ccall unsafe "sigsuspend"
   c_sigsuspend :: Ptr CSigset -> IO CInt
 #endif
 
@@ -612,16 +612,16 @@ foreign import ccall unsafe "sigfillset"
 foreign import ccall unsafe "sigismember"
   c_sigismember :: Ptr CSigset -> CInt -> IO CInt
 #else
-foreign import capi unsafe "HsUnix.h sigdelset"
+foreign import ccall unsafe "__hscore_sigdelset"
   c_sigdelset   :: Ptr CSigset -> CInt -> IO CInt
 
-foreign import capi unsafe "HsUnix.h sigfillset"
+foreign import ccall unsafe "__hscore_sigfillset"
   c_sigfillset  :: Ptr CSigset -> IO CInt
 
-foreign import capi unsafe "HsUnix.h sigismember"
+foreign import ccall unsafe "__hscore_sigismember"
   c_sigismember :: Ptr CSigset -> CInt -> IO CInt
 #endif /* __HUGS__ */
 
-foreign import capi unsafe "HsUnix.h sigpending"
+foreign import ccall unsafe "sigpending"
   c_sigpending :: Ptr CSigset -> IO CInt