Desktop window is repainted on WM_ERASEBKGND, it must never get a
WM_PAINT.

diff --git a/server/window.c b/server/window.c
index 7a2b50f..c7af5e8 100644
--- a/server/window.c
+++ b/server/window.c
@@ -1660,7 +1660,12 @@
     else
     {
         if (reply->flags & UPDATE_NONCLIENT) validate_non_client( win );
-        if (reply->flags & UPDATE_ERASE) win->paint_flags &= ~PAINT_ERASE;
+        if (reply->flags & UPDATE_ERASE)
+        {
+            win->paint_flags &= ~PAINT_ERASE;
+            /* desktop window only gets erased, not repainted */
+            if (win == top_window) validate_whole_window( win );
+        }
     }
 }