Index: apps/app_mixmonitor.c =================================================================== --- apps/app_mixmonitor.c (revision 135157) +++ apps/app_mixmonitor.c (working copy) @@ -266,6 +266,7 @@ } ast_set_flag(&mixmonitor->audiohook, AST_AUDIOHOOK_TRIGGER_SYNC); + ast_set_flag(&mixmonitor->audiohook, AST_AUDIOHOOK_TRIGGER_READ); if (readvol) mixmonitor->audiohook.options.read_volume = readvol; Index: main/audiohook.c =================================================================== --- main/audiohook.c (revision 135157) +++ main/audiohook.c (working copy) @@ -150,8 +150,6 @@ ast_cond_signal(&audiohook->trigger); } else if ((ast_test_flag(audiohook, AST_AUDIOHOOK_TRIGGER_MODE) == AST_AUDIOHOOK_TRIGGER_WRITE) && (direction == AST_AUDIOHOOK_DIRECTION_WRITE)) { ast_cond_signal(&audiohook->trigger); - } else if (ast_test_flag(audiohook, AST_AUDIOHOOK_TRIGGER_SYNC)) { - ast_cond_signal(&audiohook->trigger); } return 0; @@ -216,7 +214,7 @@ } /* If we want to provide only a write factory make sure we aren't waiting for other audio */ - if (usable_write && !usable_read && (ast_tvdiff_ms(ast_tvnow(), audiohook->write_time) < (samples/8)*2)) { + if (usable_write && !usable_read && (ast_tvdiff_ms(ast_tvnow(), audiohook->read_time) < (samples/8)*2)) { if (option_debug) ast_log(LOG_DEBUG, "Read factory %p was pretty quick last time, waiting for them.\n", &audiohook->read_factory); return NULL;