diff --git a/controls/button.c b/controls/button.c
index d51d190295c9c32e8fb4697e6fd5a54db0aba0a1..cfbcc2692511e69fce59f5da6bdcf6b0ee415897 100644
--- a/controls/button.c
+++ b/controls/button.c
@@ -275,7 +275,10 @@ static inline LRESULT WINAPI ButtonWndProc_locked(WND* wndPtr, UINT uMsg,
     case BM_SETIMAGE:
 	oldHbitmap = infoPtr->hImage;
 	if ((wndPtr->dwStyle & BS_BITMAP) || (wndPtr->dwStyle & BS_ICON))
+	{
 	    infoPtr->hImage = (HANDLE) lParam;
+	    InvalidateRect( hWnd, NULL, FALSE );
+	}
 	return oldHbitmap;
 
     case BM_GETIMAGE: