The error is not so much the $display changing, it was winehelper not being able to reconnect. The workaround was also only a temporary one, to avoid a reboot, which seems to fix the problem. I will have a go at compiling from source when I have time, it sounds like it fixes quite a few common problems. Thanks for your help guys. I will keep trying.