diff --git a/ghc/runtime/storage/mprotect.lc b/ghc/runtime/storage/mprotect.lc
index 96c0e2fb8c8d59f313f86f0fea239a378bcd988a..1cef887330d5242dd3999b749d8b27f8102f06c5 100644
--- a/ghc/runtime/storage/mprotect.lc
+++ b/ghc/runtime/storage/mprotect.lc
@@ -70,7 +70,7 @@ char * /*caddr_t*/ addr;
 int size;
 {
     int pagesize = GETPAGESIZE();
-    char * middle = (caddr_t) (((W_) (addr + size / 2)) / pagesize * pagesize);
+    char * middle = (char *) (((W_) (addr + size / 2)) / pagesize * pagesize);
 #if defined(cygwin32_TARGET_OS)
     unsigned int old_prot;
 #endif