diff -pruN qcomicbook-0.4.0/src/imgarchivesink.cpp qcomicbook-0.4.0-1jr/src/imgarchivesink.cpp --- qcomicbook-0.4.0/src/imgarchivesink.cpp 2007-11-05 19:34:23.000000000 -0200 +++ qcomicbook-0.4.0-1jr/src/imgarchivesink.cpp 2009-07-21 23:39:51.000000000 -0300 @@ -311,7 +311,17 @@ void ImgArchiveSink::extractStdoutReady( if (b[i] == '\n' && extcnt < filesnum) ++extcnt; emit progress(extcnt, filesnum); - qApp->processEvents(); + +// This is called from inside QProcess::waitForFinished(int), which will be +// polling for input from the process pipes. If we process events here, +// the process will finish and all its descriptors will be closed, putting +// waitForFinish into an infinite select with no descriptors to monitor. +// The Qt4 documentation doesn't say if this should be allowed, it may be a +// Qt4 bug. For now, suppress processing events here. The UI won't be +// updated while loading the archive. +// -- jravasi 2009-07-21 +// +// qApp->processEvents(); } void ImgArchiveSink::autoconfRAR()