diff --git a/windows/dialog.c b/windows/dialog.c
index 913eb85eb1a2c1bad6bb5624dbd17c6100ace614..97dc5329e2679c4d33287641424328e7aa00aa5f 100644
--- a/windows/dialog.c
+++ b/windows/dialog.c
@@ -1157,6 +1157,13 @@ static BOOL DIALOG_IsAccelerator( HWND hwnd, HWND hwndDlg, WPARAM vKey )
                             /* and bump it on to next */
                             SendMessageA( hwndDlg, WM_NEXTDLGCTL, 0, 0);
                         }
+                        else if (dlgCode & DLGC_BUTTON)
+                        {
+                            /* send command message as from the control */
+                            SendMessageA( hwndDlg, WM_COMMAND, 
+                                MAKEWPARAM( LOWORD(wndPtr->wIDmenu), BN_CLICKED ),
+                                (LPARAM)hwndControl );
+                        }
 
                         RetVal = TRUE;
 			WIN_ReleaseWndPtr(wndPtr);