For a radio button even if the initial style includes WS_TABSTOP the
first BM_SETCHECK 0 will clear it (even if the state was clear).

diff --git a/controls/button.c b/controls/button.c
index 12c6188..7e92dae 100644
--- a/controls/button.c
+++ b/controls/button.c
@@ -371,14 +371,14 @@
     case BM_SETCHECK:
         if (wParam > maxCheckState[btn_type]) wParam = maxCheckState[btn_type];
         state = get_button_state( hWnd );
+        if ((btn_type == BS_RADIOBUTTON) || (btn_type == BS_AUTORADIOBUTTON))
+        {
+            if (wParam) style |= WS_TABSTOP;
+            else style &= ~WS_TABSTOP;
+            SetWindowLongA( hWnd, GWL_STYLE, style );
+        }
         if ((state & 3) != wParam)
         {
-	    if ((btn_type == BS_RADIOBUTTON) || (btn_type == BS_AUTORADIOBUTTON))
-	    {
-                if (wParam) style |= WS_TABSTOP;
-                else style &= ~WS_TABSTOP;
-                SetWindowLongA( hWnd, GWL_STYLE, style );
-	    }
             set_button_state( hWnd, (state & ~3) | wParam );
             paint_button( hWnd, btn_type, ODA_SELECT );
         }