$OpenBSD: patch-src_lib_failures_c,v 1.1 2008/07/21 09:37:36 brad Exp $
--- src/lib/failures.c.orig	Tue Dec 11 13:52:08 2007
+++ src/lib/failures.c	Mon Jul 21 02:03:52 2008
@@ -376,9 +376,15 @@ void i_set_failure_file(const char *path, const char *
 
 static int internal_handler(char log_type, const char *format, va_list args)
 {
+	static int recursed = 0;
 	string_t *str;
 	int ret;
 
+	if (recursed != 0)
+		return -1;
+
+	recursed++;
+
 	t_push();
 	str = t_str_new(512);
 	str_append_c(str, 1);
@@ -388,6 +394,7 @@ static int internal_handler(char log_type, const char 
 	ret = write_full(2, str_data(str), str_len(str));
 	t_pop();
 
+	recursed--;
 	return ret;
 }
 
