I think that if condition isn't correct here, it has to contain `NIF_INFO` in flags as well. I made these adjustments below: ```diff @@ -124,6 +124,10 @@ BOOL WINAPI Shell_NotifyIconA(DWORD dwMessage, PNOTIFYICONDATAA pnid) return Shell_NotifyIconW(dwMessage, &nidW); } + +/************************************************************************* + * get_bitmap_info Helper function for filling BITMAP structs and calculating buffer size in bits + */ static void get_bitmap_info( ICONINFO *icon_info, BITMAP *mask, BITMAP *color, LONG *mask_bits, LONG *color_bits ) { if ((icon_info->hbmMask && !GetObjectW( icon_info->hbmMask, sizeof(*mask), mask )) || @@ -216,7 +220,7 @@ BOOL WINAPI Shell_NotifyIconW(DWORD dwMessage, PNOTIFYICONDATAW nid) if (nid->uFlags & NIF_ICON) GetIconInfo( nid->hIcon, &icon_info ); - if ((nid->dwInfoFlags & NIIF_ICONMASK) == NIIF_USER) + if ((nid->uFlags & NIF_INFO) && (nid->dwInfoFlags & NIIF_ICONMASK) == NIIF_USER) GetIconInfo( nid->hBalloonIcon, &balloon_icon_info ); ``` changed a same condition in explorer.exe code. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/2875#note_82589