diff --git a/src/Makefile.am b/src/Makefile.am
index 6209906..c2449bd 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -4,7 +4,7 @@
 sbin_PROGRAMS = bsc_hack db_test
 
 bsc_hack_SOURCES = bsc_hack.c misdn.c abis_rsl.c abis_nm.c gsm_04_08.c gsm_data.c \
-		gsm_subscriber.c msgb.c select.c chan_alloc.c timer.c
+		gsm_subscriber.c msgb.c select.c chan_alloc.c timer.c debug.c
 
 db_test_SOURCES = db_test.c db.c
 db_test_LDADD = -ldl -ldbi
diff --git a/src/bsc_hack.c b/src/bsc_hack.c
index ec17877..aa2b585 100644
--- a/src/bsc_hack.c
+++ b/src/bsc_hack.c
@@ -581,31 +581,6 @@
 	return 0;
 }
 
-static unsigned int debug_mask = 0xffffffff & ~DMI;
-
-void debugp(unsigned int subsys, char *file, int line, const char *format, ...)
-{
-	char *timestr;
-	va_list ap;
-	time_t tm;
-	FILE *outfd = stderr;
-
-	if (!(debug_mask & subsys))
-		return;
-
-	va_start(ap, format);
-	
-	tm = time(NULL);
-	timestr = ctime(&tm);
-	timestr[strlen(timestr)-1] = '\0';
-	fprintf(outfd, "%s <%4.4x> %s:%d ", timestr, subsys, file, line);
-	vfprintf(outfd, format, ap);
-
-	va_end(ap);
-
-	fflush(outfd);
-}
-
 int main(int argc, char **argv)
 {
 	bootstrap_network();
diff --git a/src/debug.c b/src/debug.c
new file mode 100644
index 0000000..a814224
--- /dev/null
+++ b/src/debug.c
@@ -0,0 +1,52 @@
+/* Debugging/Logging support code */
+/* (C) 2008 by Harald Welte <laforge@gnumonks.org>
+ * 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 <stdarg.h>
+#include <stdio.h>
+#include <string.h>
+#include <time.h>
+
+#include <openbsc/debug.h>
+
+static unsigned int debug_mask = 0xffffffff & ~DMI;
+
+void debugp(unsigned int subsys, char *file, int line, const char *format, ...)
+{
+	char *timestr;
+	va_list ap;
+	time_t tm;
+	FILE *outfd = stderr;
+
+	if (!(debug_mask & subsys))
+		return;
+
+	va_start(ap, format);
+
+	tm = time(NULL);
+	timestr = ctime(&tm);
+	timestr[strlen(timestr)-1] = '\0';
+	fprintf(outfd, "%s <%4.4x> %s:%d ", timestr, subsys, file, line);
+	vfprintf(outfd, format, ap);
+
+	va_end(ap);
+
+	fflush(outfd);
+}
+
