diff --git a/openbsc/contrib/bt.py b/openbsc/contrib/bt.py
new file mode 100755
index 0000000..1b111ef
--- /dev/null
+++ b/openbsc/contrib/bt.py
@@ -0,0 +1,33 @@
+#!/usr/bin/env python
+
+import os
+
+f = open("unbalanced")
+lines = []
+for line in f:
+    lines.append(line)
+
+filenames = {}
+
+output = []
+for line in lines:
+    if "[0x" in line:
+        start = line.find("[")
+        end = line.find("]")
+        addr = line[start+1:end]
+        try:
+            file = filenames[addr]
+        except KeyError:
+            r = os.popen("addr2line -fs -e ./bsc_hack %s" % addr)
+            all = r.read().replace("\n", ",")
+            file = all
+            filenames[addr] = file
+
+        line = line.replace(addr, file)
+    output.append(line)
+
+g = open("unbalanced.2", "w")
+g.write("".join(output))
+
+
+
diff --git a/openbsc/include/openbsc/gsm_utils.h b/openbsc/include/openbsc/gsm_utils.h
index 7cd0578..1bd1bc5 100644
--- a/openbsc/include/openbsc/gsm_utils.h
+++ b/openbsc/include/openbsc/gsm_utils.h
@@ -32,4 +32,6 @@
 
 int ms_pwr_ctl_lvl(enum gsm_band band, unsigned int dbm);
 int ms_pwr_dbm(enum gsm_band band, u_int8_t lvl);
+
+void generate_backtrace();
 #endif
diff --git a/openbsc/src/gsm_utils.c b/openbsc/src/gsm_utils.c
index de18dba..ddfd7f3 100644
--- a/openbsc/src/gsm_utils.c
+++ b/openbsc/src/gsm_utils.c
@@ -23,8 +23,10 @@
 
 #include <openbsc/gsm_data.h>
 #include <openbsc/gsm_utils.h>
+#include <execinfo.h>
 #include <stdlib.h>
 #include <string.h>
+#include <stdio.h>
 #include <errno.h>
 
 /* GSM 03.38 6.2.1 Charachter packing */
@@ -148,4 +150,21 @@
 	return -EINVAL;
 }
 
+void generate_backtrace()
+{
+	int i, nptrs;
+	void *buffer[100];
+	char **strings;
 
+	nptrs = backtrace(buffer, ARRAY_SIZE(buffer));
+	printf("backtrace() returned %d addresses\n", nptrs);
+
+	strings = backtrace_symbols(buffer, nptrs);
+	if (!strings)
+		return;
+
+	for (i = 1; i < nptrs; i++)
+		printf("%s\n", strings[i]);
+
+	free(strings);
+}
