Hi Vincent,
I was trying to have the appbar tests succeed on Vista. One way I could make it
work is with the attached patch. Does this make sense? Or should we have another
possible outcome of the test? (or even a broken()?).
The change to do_events_until was only for my troubleshooting purposes. (Vista 
times out without the patch).
-- 
Cheers,
Paul.
diff --git a/dlls/shell32/tests/appbar.c b/dlls/shell32/tests/appbar.c
index d11a999..8dff9a8 100644
--- a/dlls/shell32/tests/appbar.c
+++ b/dlls/shell32/tests/appbar.c
@@ -128,8 +128,13 @@ static void do_events_until(boolean_function test)
             TranslateMessage(&msg);
             DispatchMessageA(&msg);
         }
-        if (timedout || test())
+        if (test())
             break;
+        else if (timedout)
+        {
+            trace("Timed out waiting for condition to become true\n");
+            break;
+        }
         WaitMessage();
     }
@@ -333,6 +338,8 @@ static void test_setpos(void)
     windows[0].registered = FALSE;
     DestroyWindow(windows[0].hwnd);
+    testwindow_setpos(windows[1].hwnd);
+
     do_events_until(got_expected_bottom);
     ok(windows[1].allocated_rect.bottom == expected_bottom, "windows[1]'s bottom is %i, expected %i\n", windows[1].allocated_rect.bottom, expected_bottom);