diff --git a/dlls/comctl32/theme_button.c b/dlls/comctl32/theme_button.c
index 9b0a5cfda5e1680278b02de0314716ec0fe6fa34..5a3b4b4cb70231907a3709c4a551b54803fcb1a1 100644
--- a/dlls/comctl32/theme_button.c
+++ b/dlls/comctl32/theme_button.c
@@ -181,8 +181,10 @@ static void CB_draw(HTHEME theme, HWND hwnd, HDC hDC, ButtonState drawState, UIN
             hPrevFont = SelectObject(hDC, font);
             created_font = TRUE;
         }
-    } else
+    } else {
         font = (HFONT)SendMessageW(hwnd, WM_GETFONT, 0, 0);
+        hPrevFont = SelectObject(hDC, font);
+    }
 
     GetClientRect(hwnd, &bgRect);
     GetThemeBackgroundContentRect(theme, hDC, part, state, &bgRect, &textRect);
@@ -243,8 +245,10 @@ static void GB_draw(HTHEME theme, HWND hwnd, HDC hDC, ButtonState drawState, UIN
             hPrevFont = SelectObject(hDC, font);
             created_font = TRUE;
         }
-    } else
+    } else {
         font = (HFONT)SendMessageW(hwnd, WM_GETFONT, 0, 0);
+        hPrevFont = SelectObject(hDC, font);
+    }
 
     GetClientRect(hwnd, &bgRect);
     textRect = bgRect;