diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index f6a6b31801b29f262c074d490c91aab740146b48..ed249c68fda871479608ebedb1bab5d8d23b0428 100644
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -24175,10 +24175,9 @@ static void *sip_pickup_thread(void *stuff)
 	struct ast_channel *chan;
 	chan = stuff;
 
+	ast_channel_hangupcause_set(chan, AST_CAUSE_NORMAL_CLEARING);
 	if (ast_pickup_call(chan)) {
 		ast_channel_hangupcause_set(chan, AST_CAUSE_CALL_REJECTED);
-	} else {
-		ast_channel_hangupcause_set(chan, AST_CAUSE_NORMAL_CLEARING);
 	}
 	ast_hangup(chan);
 	ast_channel_unref(chan);