diff --git a/main/logger.c b/main/logger.c
index cd7d7a3ed4e2bba1edce2527ac8bd80edaa15c25..70a8771968573001c43bfc61aea3fddca0387b8b 100644
--- a/main/logger.c
+++ b/main/logger.c
@@ -1134,8 +1134,8 @@ void ast_backtrace(void)
 
 	if ((strings = backtrace_symbols(bt->addresses, bt->num_frames))) {
 		ast_debug(1, "Got %d backtrace record%c\n", bt->num_frames, bt->num_frames != 1 ? 's' : ' ');
-		for (i = 0; i < bt->num_frames; i++) {
-			ast_log(LOG_DEBUG, "#%d: [%p] %s\n", i, bt->addresses[i], strings[i]);
+		for (i = 3; i < bt->num_frames - 2; i++) {
+			ast_log(LOG_DEBUG, "#%d: [%p] %s\n", i - 3, bt->addresses[i], strings[i]);
 		}
 
 		/* MALLOC_DEBUG will erroneously report an error here, unless we undef the macro. */