diff --git a/src/palette.c b/src/palette.c
index fb965b2..bb55732 100644
--- a/src/palette.c
+++ b/src/palette.c
@@ -59,8 +59,7 @@ HRESULT __stdcall ddraw_palette_SetEntries(IDirectDrawPaletteImpl *This, DWORD d
         }
     }
     
-    /* FIXME: only refresh the screen when the primary palette is changed */
-    if(ddraw->primary && ddraw->render.run)
+    if(ddraw->primary && ddraw->primary->palette == This && ddraw->render.run)
     {
         InterlockedExchange(&ddraw->render.paletteUpdated, TRUE);
         ReleaseSemaphore(ddraw->render.sem, 1, NULL);