The desktop of a new thread should be set from the process initial desktop, not from the parent thread. Fixed a couple of bugs in the desktop name handling.