Index: apps/app_directed_pickup.c =================================================================== --- apps/app_directed_pickup.c (revision 315894) +++ apps/app_directed_pickup.c (working copy) @@ -147,10 +147,14 @@ /* Helper function that determines whether a channel is capable of being picked up */ static int can_pickup(struct ast_channel *chan) { - if (!chan->pbx && (chan->_state == AST_STATE_RINGING || chan->_state == AST_STATE_RING || chan->_state == AST_STATE_DOWN)) + if (!chan->pbx && !chan->masq && + !ast_test_flag(chan, AST_FLAG_ZOMBIE) && + (chan->_state == AST_STATE_RINGING || + chan->_state == AST_STATE_RING || + chan->_state == AST_STATE_DOWN)) { return 1; - else - return 0; + } + return 0; } struct pickup_by_name_args {