diff --git a/src/winapi_hooks.c b/src/winapi_hooks.c
index 43d3c82..22cd632 100644
--- a/src/winapi_hooks.c
+++ b/src/winapi_hooks.c
@@ -121,8 +121,11 @@ int WINAPI fake_ShowCursor(BOOL bShow)
 
 HCURSOR WINAPI fake_SetCursor(HCURSOR hCursor)
 {
+    if (g_ddraw)
+        g_ddraw->old_cursor = hCursor;
+
     if (g_ddraw && !g_ddraw->handlemouse && (g_ddraw->locked || g_ddraw->devmode))
-        return real_SetCursor(g_ddraw->old_cursor = hCursor);
+        return real_SetCursor(hCursor);
 
     return NULL;
 }