--- a/pthread_win32_attach_detach_np.c
+++ b/pthread_win32_attach_detach_np.c
@@ -209,8 +209,8 @@
               pthread_mutex_t mx = sp->robustMxList->mx;
               ptw32_robust_mutex_remove(&mx, sp);
               (void) PTW32_INTERLOCKED_EXCHANGE(
-                       (LPLONG)&mx->robustNode->stateInconsistent,
-                       -1L);
+                       (PTW32_INTERLOCKED_PTR)&mx->robustNode->stateInconsistent,
+                       (PTW32_INTERLOCKED_VALUE)-1);
               /*
                * If there are no waiters then the next thread to block will
                * sleep, wakeup immediately and then go back to sleep.