diff --git a/include/openbsc/e1_input.h b/include/openbsc/e1_input.h
index e127c27..61c3e7a 100644
--- a/include/openbsc/e1_input.h
+++ b/include/openbsc/e1_input.h
@@ -138,6 +138,9 @@
 /* called by driver in case some kind of link state event */
 int e1inp_event(struct e1inp_ts *ts, int evt, u_int8_t tei, u_int8_t sapi);
 
+/* Write LAPD frames to the fd. */
+void e1_set_pcap_fd(int fd);
+
 /* called by TRAU muxer to obtain the destination mux entity */
 struct subch_mux *e1inp_get_mux(u_int8_t e1_nr, u_int8_t ts_nr);
 
diff --git a/include/openbsc/misdn.h b/include/openbsc/misdn.h
index 5d9013a..b6bd391 100644
--- a/include/openbsc/misdn.h
+++ b/include/openbsc/misdn.h
@@ -23,7 +23,6 @@
 #include "e1_input.h"
 
 int mi_setup(int cardnr,  struct e1inp_line *line);
-void mi_set_pcap_fd(int fd);
 int _abis_nm_sendmsg(struct msgb *msg);
 
 #endif
diff --git a/src/bsc_hack.c b/src/bsc_hack.c
index 6967afa..ac109f1 100644
--- a/src/bsc_hack.c
+++ b/src/bsc_hack.c
@@ -927,7 +927,6 @@
 
 static void create_pcap_file(char *file)
 {
-#if 0
 	mode_t mode = S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH;
 	int fd = open(file, O_WRONLY|O_TRUNC|O_CREAT, mode);
 
@@ -936,10 +935,7 @@
 		return;
 	}
 
-	mi_set_pcap_fd(fd);
-#else
-	fprintf(stderr, "PCAP support currently disabled!!\n");
-#endif
+	e1_set_pcap_fd(fd);
 }
 
 static void print_usage()
diff --git a/src/e1_input.c b/src/e1_input.c
index 153a413..14352d0 100644
--- a/src/e1_input.c
+++ b/src/e1_input.c
@@ -62,7 +62,6 @@
 /* to be implemented, e.g. by bsc_hack.c */
 void input_event(int event, enum e1inp_sign_type type, struct gsm_bts_trx *trx);
 
-#if 0
 /*
  * pcap writing of the misdn load
  * pcap format is from http://wiki.wireshark.org/Development/LibpcapFileFormat
@@ -114,7 +113,7 @@
 
 static int pcap_fd = -1;
 
-void mi_set_pcap_fd(int fd)
+void e1_set_pcap_fd(int fd)
 {
 	int ret;
 	struct pcap_hdr header = {
@@ -132,7 +131,7 @@
 }
 
 /* This currently only works for the D-Channel */
-static void write_pcap_packet(int direction, struct sockaddr_mISDN* addr,
+static void write_pcap_packet(int direction, int sapi, int tei,
 			      struct msgb *msg) {
 	if (pcap_fd < 0)
 		return;
@@ -152,9 +151,9 @@
 	struct lapd_header lapd_header = {
 		.ea1		= 0,
 		.cr		= direction == PCAP_OUTPUT ? 1 : 0,
-		.sapi		= addr->sapi & 0x3F,
+		.sapi		= sapi & 0x3F,
 		.ea2		= 1,
-		.tei		= addr->tei & 0x7F,
+		.tei		= tei & 0x7F,
 		.control_foo	= 0x03 /* UI */,
 	};	
 
@@ -180,7 +179,6 @@
 	ret = write(pcap_fd, msg->data + MISDN_HEADER_LEN,
 			msg->len - MISDN_HEADER_LEN);
 }
-#endif
 
 static const char *sign_types[] = {
 	[E1INP_SIGN_NONE]	= "None",
@@ -236,6 +234,9 @@
 	sign_link = msg->trx->rsl_link;
 	msgb_enqueue(&sign_link->tx_list, msg);
 
+	/* dump it */
+	write_pcap_packet(PCAP_OUTPUT, sign_link->sapi, sign_link->tei, msg);
+
 	/* notify the driver we have something to write */
 	e1inp_driver = sign_link->ts->line->driver;
 	e1inp_driver->want_write(sign_link->ts);
@@ -258,6 +259,9 @@
 	sign_link = msg->trx->bts->oml_link;
 	msgb_enqueue(&sign_link->tx_list, msg);
 
+	/* dump it */
+	write_pcap_packet(PCAP_OUTPUT, sign_link->sapi, sign_link->tei, msg);
+
 	/* notify the driver we have something to write */
 	e1inp_driver = sign_link->ts->line->driver;
 	e1inp_driver->want_write(sign_link->ts);
@@ -379,8 +383,8 @@
 
 	switch (ts->type) {
 	case E1INP_TS_TYPE_SIGN:
-		/* FIXME: write pcap packet */
 		/* consult the list of signalling links */
+		write_pcap_packet(PCAP_INPUT, sapi, tei, msg);
 		link = e1inp_lookup_sign_link(ts, tei, sapi);
 		if (!link) {
 			fprintf(stderr, "didn't find singalling link for "
