diff --git a/res/res_agi.c b/res/res_agi.c
index 9e9261690ca83962322c397cefa9c871d4aca531..aeaeb7dd0c847066e4d619ef421181bca731ed08 100644
--- a/res/res_agi.c
+++ b/res/res_agi.c
@@ -1926,6 +1926,8 @@ static enum agi_result run_agi(struct ast_channel *chan, char *request, AGI *agi
 				if (res != NULL && !agi->fast)
 					break;
 				buflen = strlen(buf);
+				if (buflen && buf[buflen - 1] == '\n')
+					break;
 				len -= buflen;
 				if (agidebug)
 					ast_verbose( "AGI Rx << temp buffer %s - errno %s\n", buf, strerror(errno));