diff --git a/apps/app_directed_pickup.c b/apps/app_directed_pickup.c
index 7fb5f6fea47f6faee7c78ed835634a5eeeea8ccd..640911317e6f890404349f10ce7d7044ef2038b9 100644
--- a/apps/app_directed_pickup.c
+++ b/apps/app_directed_pickup.c
@@ -115,7 +115,7 @@ static int pickup_do(struct ast_channel *chan, struct ast_channel *target)
 /* 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))
+	if (!chan->pbx && (chan->_state == AST_STATE_RINGING || chan->_state == AST_STATE_RING || chan->_state == AST_STATE_DOWN))
 		return 1;
 	else
 		return 0;