The QMutex you are using with QMutexLocker, which mode is it in. Is in QMutex::Recursive or QMutex::NonRecursive mode? Also can you elaborate whether the function is not a recursive calling function?
Also do you get an message with assert failure like this:
ASSERT failure in QMutexLocker: "QMutex pointer is misaligned"
Bookmarks