diff --git a/dlls/comctl32/toolbar.c b/dlls/comctl32/toolbar.c
index 7b8f631505b77ddb05eb5f5cf124d3a070fa0f09..8f7414b93169b38c8fae781744a3da410c9c998f 100644
--- a/dlls/comctl32/toolbar.c
+++ b/dlls/comctl32/toolbar.c
@@ -314,9 +314,7 @@ TOOLBAR_DrawButton (HWND hwnd, TBUTTON_INFO *btnPtr, HDC hdc)
     rc = btnPtr->rect;
     CopyRect (&rcArrow, &rc);
 
-    InflateRect(&rc, -1, -1);
     FillRect( hdc, &rc, GetSysColorBrush(COLOR_BTNFACE));
-    InflateRect(&rc, 1, 1);
 
     if (hasDropDownArrow)
     {
@@ -3454,7 +3452,7 @@ TOOLBAR_LButtonDown (HWND hwnd, WPARAM wParam, LPARAM lParam)
 	CopyRect(&arrowRect, &btnPtr->rect);
 	arrowRect.left = max(btnPtr->rect.left, btnPtr->rect.right - DDARROW_WIDTH);
 	
-	/* if click is in the drop-down arrow rect, tell app to show the listbox */
+	/* for EX_DRAWDDARROWS style,  click must be in the drop-down arrow rect */
 	if ((btnPtr->fsStyle & TBSTYLE_DROPDOWN) &&
 	     !(TOOLBAR_HasDropDownArrows(infoPtr->dwExStyle) && !PtInRect(&arrowRect, pt))) 
 	{
@@ -3506,8 +3504,6 @@ TOOLBAR_LButtonUp (HWND hwnd, WPARAM wParam, LPARAM lParam)
         infoPtr->buttons[infoPtr->nHotItem].bHot = TRUE;
 
     if ((infoPtr->bCaptured) && (infoPtr->nButtonDown >= 0)) {
-	infoPtr->bCaptured = FALSE;
-	ReleaseCapture ();
 	btnPtr = &infoPtr->buttons[infoPtr->nButtonDown];
 	btnPtr->fsState &= ~TBSTATE_PRESSED;
 
@@ -3540,14 +3536,16 @@ TOOLBAR_LButtonUp (HWND hwnd, WPARAM wParam, LPARAM lParam)
                 TOOLBAR_HasText(infoPtr, &infoPtr->buttons[nOldIndex]));
         }
 
-        InvalidateRect(hwnd, &btnPtr->rect, TOOLBAR_HasText(infoPtr,
-            btnPtr));
+	/*
+	 * now we can ReleaseCapture, which triggers CAPTURECHANGED msg,
+	 * that resets bCaptured and btn TBSTATE_PRESSED flags,
+	 * and obliterates nButtonDown and nOldHit (see TOOLBAR_CaptureChanged) 
+	 */
+	ReleaseCapture ();
 
 	if (bSendMessage)
 	    SendMessageA (GetParent(hwnd), WM_COMMAND,
 			  MAKEWPARAM(btnPtr->idCommand, 0), (LPARAM)hwnd);
-	infoPtr->nButtonDown = -1;
-	infoPtr->nOldHit = -1;
     }
 
     return 0;
@@ -3559,14 +3557,12 @@ TOOLBAR_CaptureChanged(HWND hwnd)
     TOOLBAR_INFO *infoPtr = TOOLBAR_GetInfoPtr (hwnd);
     TBUTTON_INFO *btnPtr;
 
-    ERR("reset CAPTURE, btnDown=%d\n", infoPtr->nButtonDown);
     infoPtr->bCaptured = FALSE;
 
     if (infoPtr->nButtonDown >= 0)
     {
         btnPtr = &infoPtr->buttons[infoPtr->nButtonDown];
        	btnPtr->fsState &= ~TBSTATE_PRESSED;
-        ERR("reset PRESSED\n");
 
         infoPtr->nButtonDown = -1;
         infoPtr->nOldHit = -1;