diff --git a/apps/app_transfer.c b/apps/app_transfer.c
index e1eff2b7252da1855d97697dc81a9829a3ce5b5f..61f2b9d038b84de81700dff28cb3254d29e74e12 100755
--- a/apps/app_transfer.c
+++ b/apps/app_transfer.c
@@ -90,10 +90,11 @@ static int transfer_exec(struct ast_channel *chan, void *data)
 
 	res = ast_transfer(chan, dest);
 
-	if (!res) {
+	if (res < 0) {
 		status = "FAILURE";
 		if (option_priority_jumping)
 			ast_goto_if_exists(chan, chan->context, chan->exten, chan->priority + 101);
+		res = 0;
 	} else {
 		status = "SUCCESS";
 		res = 0;