Index: src/posix-io.c =================================================================== --- src/posix-io.c +++ src/posix-io.c @@ -340,10 +340,15 @@ _gpgme_io_waitpid (int pid, int hang, int *r_status, int *r_signal) { int status; - + int ret; *r_status = 0; *r_signal = 0; - if (_gpgme_ath_waitpid (pid, &status, hang? 0 : WNOHANG) == pid) + do + { + ret = _gpgme_ath_waitpid (pid, &status, hang? 0 : WNOHANG); + } + while (ret == -1 && errno == EINTR); + if (ret == pid) { if (WIFSIGNALED (status)) {