Index: main/channel.c =================================================================== --- main/channel.c (revision 77054) +++ main/channel.c (working copy) @@ -1032,6 +1032,7 @@ const char *msg = prev ? "deadlock" : "initial deadlock"; int retries; struct ast_channel *c; + const struct ast_channel *_prev = prev; for (retries = 0; retries < 10; retries++) { int done; @@ -1093,6 +1094,7 @@ AST_LIST_UNLOCK(&channels); if (done) return c; + prev = _prev; usleep(1); /* give other threads a chance before retrying */ }