Using PyQt 4.0 and Qt 4.1. I'm emitting a single from a QThread with a single argument. About 50% of the time when I catch the signal and execute the slot function, the argument is a QMutex object, not the argument I emitted with the signal. Here is my threads run() function. def run(self): while self.__running: job_name = None self.__parent._q_mutex.lock() if len(self.__parent._q_queue) == 0: _log.debug("Thread-%d waiting for data" % (self.__name)) self.__parent._q_empty.wait(self.__parent._q_mutex) else: job_name = self.__parent._q_queue.pop(0) self.__parent._q_mutex.unlock() if job_name: _log.debug("thread-%d parsing cue job log" % self.__name) try: cjob = cuejob.CueJob(job_name[0:job_name.find("-")],job_name) cjob.profile() self.emit(QtCore.SIGNAL("parsingComplete"),cjob) except Exception,e: _log.debug("Error parsing cue job: %s" % (e)) _log.debug("Thread Stopping") Notice I'm emitting the signal with a cuejob.CueJob object, but from the slot, when I print the first argument, I get: Matt _______________________________________________ PyKDE mailing list PyKDE@mats.imk.fraunhofer.de http://mats.imk.fraunhofer.de/mailman/listinfo/pykde