http://bugs.winehq.org/show_bug.cgi?id=15382
--- Comment #10 from jvlad dmda@yandex.ru 2008-09-29 09:35:25 --- I'm sure, there is just one X on my machine. It's also clear that in my case trayicons mostly work. When they don't, I see only one possible reason - OS has been idling for quite big amount of time before the problem happened.
As I noted earlier, in my case Shell_NotifyIcon() knew that the icon hasn't been added and returned FALSE. But the error status wasn't properly updated so GetLastError() returned zero.
Does Shell_NotifyIcon() use some kind of RPC to add the icons? It would explain the problem with timeout.