diff --git a/win32/perlhost.h b/win32/perlhost.h
index a7708cafbf2f..af5e320afae4 100644
--- a/win32/perlhost.h
+++ b/win32/perlhost.h
@@ -2143,11 +2143,11 @@ CPerlHost::CPerlHost(void)
 #define SETUPEXCHANGE(xptr, iptr, table) \
     STMT_START {				\
         if (xptr) {				\
-            *(void**)&iptr = (void*)xptr;			\
-            *(void**)&xptr = (void*)&table;			\
+            iptr = *xptr;			\
+            *xptr = &table;			\
         }					\
         else {					\
-            *(void**)&iptr = (void*)&table;			\
+            iptr = &table;			\
         }					\
     } STMT_END