diff --git a/programs/uninstaller/main.c b/programs/uninstaller/main.c
index 1d01875231bda3e572a2898200050677b62a91db..c3ff2a0347b61518a63dd999f9b9d57bffa789da 100644
--- a/programs/uninstaller/main.c
+++ b/programs/uninstaller/main.c
@@ -346,10 +346,12 @@ LRESULT WINAPI MainProc( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
 
     case WM_PAINT:
       {
+	int prevsel = SendMessage(hwndList, LB_GETCURSEL, 0, 0);
 	SendMessage(hwndList, LB_RESETCONTENT, 0, 0);
 	SendMessage(hwndList, WM_SETREDRAW, FALSE, 0);
 	for (i=0; i < numentries; i++)
 	    SendMessage(hwndList, LB_ADDSTRING, 0, (LPARAM)entries[i].descr);
+	SendMessage(hwndList, LB_SETCURSEL, prevsel, 0 );
 	SendMessage(hwndList, WM_SETREDRAW, TRUE, 0);
         hdc = BeginPaint( hWnd, &ps );
         EndPaint( hWnd, &ps );