diff --git a/configure.in b/configure.in
index 140fdc2..c3e0061 100644
--- a/configure.in
+++ b/configure.in
@@ -66,6 +66,17 @@
 	[enable_vty=0], [enable_vty=1])
 AM_CONDITIONAL(ENABLE_VTY, test "x$enable_vty" = "x1")
 
+AC_ARG_ENABLE(panic_infloop,
+	[AS_HELP_STRING(
+		[--enable-panic-infloop],
+		[Trigger infinite loop on panic rather than fprintf/abort]
+	)],
+	[panic_infloop=1], [panic_infloop=0])
+if test "x$panic_infloop" = "x1"
+then
+	AC_DEFINE([PANIC_INFLOOP],[1],[Use infinite loop on panic rather than fprintf/abort])
+fi
+
 
 AC_OUTPUT(
 	libosmocore.pc
diff --git a/include/osmocore/Makefile.am b/include/osmocore/Makefile.am
index 8334f14..ecdc65c 100644
--- a/include/osmocore/Makefile.am
+++ b/include/osmocore/Makefile.am
@@ -2,7 +2,7 @@
 		   tlv.h bitvec.h comp128.h statistics.h gsm_utils.h utils.h \
 		   gsmtap.h write_queue.h rsl.h gsm48.h rxlev_stat.h mncc.h \
 		   gsm48_ie.h logging.h gsm0808.h rate_ctr.h gsmtap_util.h \
-		   plugin.h crc16.h
+		   plugin.h crc16.h panic.h
 
 if ENABLE_TALLOC
 osmocore_HEADERS += talloc.h
diff --git a/include/osmocore/panic.h b/include/osmocore/panic.h
new file mode 100644
index 0000000..cee9535
--- /dev/null
+++ b/include/osmocore/panic.h
@@ -0,0 +1,11 @@
+#ifndef OSMOCORE_PANIC_H
+#define OSMOCORE_PANIC_H
+
+#include <stdarg.h>
+
+typedef void (*osmo_panic_handler_t)(const char *fmt, va_list args);
+
+void osmo_panic(const char *fmt, ...);
+void osmo_set_panic_handler(osmo_panic_handler_t *h);
+
+#endif
diff --git a/src/Makefile.am b/src/Makefile.am
index a20fbc8..e197e17 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -13,7 +13,7 @@
 			 tlv_parser.c bitvec.c comp128.c gsm_utils.c statistics.c \
 			 write_queue.c utils.c rsl.c gsm48.c gsm48_ie.c \
 			 logging.c gsm0808.c rate_ctr.c gsmtap_util.c \
-			 gprs_cipher_core.c crc16.c
+			 gprs_cipher_core.c crc16.c panic.c
 
 if ENABLE_PLUGIN
 libosmocore_la_SOURCES += plugin.c
diff --git a/src/panic.c b/src/panic.c
new file mode 100644
index 0000000..a25067d
--- /dev/null
+++ b/src/panic.c
@@ -0,0 +1,71 @@
+/* Panic handling */
+/*
+ * (C) 2010 by Sylvain Munaut <tnt@246tNt.com>
+ *
+ * All Rights Reserved
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ */
+
+#include <osmocore/panic.h>
+
+#include "../config.h"
+
+
+static osmo_panic_handler_t osmo_panic_handler = (void*)0;
+
+
+#ifndef PANIC_INFLOOP
+
+#include <stdio.h>
+#include <stdlib.h>
+
+static void osmo_panic_default(const char *fmt, va_list args)
+{
+	vfprintf(stderr, fmt, args);
+	abort();
+}
+
+#else
+
+static void osmo_panic_default(const char *fmt, va_list args)
+{
+	while (1);
+}
+
+#endif
+
+
+void osmo_panic(const char *fmt, ...)
+{
+	va_list args;
+
+	va_start(args, fmt);
+
+	if (osmo_panic_handler)
+		osmo_panic_handler(fmt, args);
+	else
+		osmo_panic_default(fmt, args);
+
+	va_end(args);
+}
+ 
+
+void osmo_set_panic_handler(osmo_panic_handler_t *h)
+{
+	osmo_panic_handler = h;
+}
+
