diff --git a/apps/app_playback.c b/apps/app_playback.c
index 56c2a86682..afa959be00 100644
--- a/apps/app_playback.c
+++ b/apps/app_playback.c
@@ -507,8 +507,7 @@ static int playback_exec(struct ast_channel *chan, const char *data)
 			if (!res) {
 				res = ast_waitstream(chan, "");
 				ast_stopstream(chan);
-			}
-			if (res) {
+			} else {
 				if (!ast_check_hangup(chan)) {
 					ast_log(LOG_WARNING, "Playback failed on %s for %s\n", ast_channel_name(chan), (char *)data);
 				}
diff --git a/doc/UPGRADE-staging/app_playback_playbackstatus.txt b/doc/UPGRADE-staging/app_playback_playbackstatus.txt
new file mode 100644
index 0000000000..49302b7966
--- /dev/null
+++ b/doc/UPGRADE-staging/app_playback_playbackstatus.txt
@@ -0,0 +1,8 @@
+Subject: app_playback
+
+In Asterisk 11, if a channel was redirected away during Playback(),
+the PLAYBACKSTATUS variable would be set to SUCCESS. In Asterisk 12
+(specifically commit 7d9871b3940fa50e85039aef6a8fb9870a7615b9) that
+behavior was inadvertently changed and the same operation would result
+in the PLAYBACKSTATUS variable being set to FAILED. The Asterisk 11
+behavior has been restored.