start() is called inside constructor (see source code above). Without QThread it doesn't work either. My suggestion was that I didn' get slot called because of missing event loop where ClientSocket gets instantiated. Therefore I started thread with its own event loop and moved socket to this thread. Unfortunately this way it doesn't work as well.