diff --git a/include/openbsc/signal.h b/include/openbsc/signal.h
index e53c194..e979d5c 100644
--- a/include/openbsc/signal.h
+++ b/include/openbsc/signal.h
@@ -1,5 +1,6 @@
 /* Generic signalling/notification infrastructure */
 /* (C) 2009 by Holger Hans Peter Freyther <zecke@selfish.org>
+ * (C) 2009 by Harald Welte <laforge@gnumonks.org>
  * All Rights Reserved
  *
  * This program is free software; you can redistribute it and/or modify
@@ -21,25 +22,28 @@
 #ifndef OPENBSC_SIGNAL_H
 #define OPENBSC_SIGNAL_H
 
+#include <stdlib.h>
+#include <errno.h>
+
 #include <openbsc/gsm_data.h>
 #include <openbsc/gsm_subscriber.h>
 
 
 /*
- * Signalling areas
+ * Signalling subsystems
  */
-#define S_PAGING	0x0001
-#define S_SMS		0x0002
+#define SS_PAGING	0x0001
+#define SS_SMS		0x0002
 
-
-struct signal_data {
-	int area;
+/* SS_PAGING signals */
+enum signal_paging {
+	S_PAGING_COMPLETED,
 };
 
+typedef int signal_cbfn(unsigned int subsys, unsigned int signal,
+			void *handler_data, void *signal_data);
 
 struct paging_signal_data {
-	struct signal_data data;
-
 	struct gsm_subscriber *subscr;
 	struct gsm_bts *bts;
 
@@ -47,19 +51,12 @@
 	struct gsm_lchan *lchan;
 };
 
-struct sms_signal_data {
-	struct signal_data data;
-
-	struct sms_submit *sms;
-};
-
-
 /* Management */
-void register_signal_handler(int areas, int (*sig)(struct signal_data *, void *data), void *data);
-void remove_signal_handler(int areas, int (*sig)(struct signal_data *, void *data), void *data);
+int register_signal_handler(unsigned int subsys, signal_cbfn *cbfn, void *data);
+void unregister_signal_handler(unsigned int subsys, signal_cbfn *cbfn, void *data);
 
 /* Dispatch */
-void dispatch_signal(struct signal_data *data);
+void dispatch_signal(unsigned int subsys, unsigned int signal, void *signal_data);
 
 
 #endif
diff --git a/src/gsm_04_08.c b/src/gsm_04_08.c
index 0d889fb..c69e246 100644
--- a/src/gsm_04_08.c
+++ b/src/gsm_04_08.c
@@ -685,6 +685,7 @@
 	u_int8_t mi_type = pr->mi[0] & GSM_MI_TYPE_MASK;
 	char mi_string[MI_SIZE];
 	struct gsm_subscriber *subscr;
+	struct paging_signal_data sig_data;
 	int rc = 0;
 
 	mi_to_string(mi_string, sizeof(mi_string), &pr->mi[0], pr->mi_len);
@@ -707,15 +708,11 @@
 		subscr_put(subscr);
 	}
 
-	struct paging_signal_data sig_data = {
-		.data = {
-			.area = S_PAGING,
-		},
-		.subscr = subscr,
-		.bts	= msg->lchan->ts->trx->bts,
-		.lchan	= msg->lchan,
-	};
-	dispatch_signal(&sig_data.data);
+	sig_data.subscr = subscr;
+	sig_data.bts	= msg->lchan->ts->trx->bts;
+	sig_data.lchan	= msg->lchan;
+
+	dispatch_signal(SS_PAGING, S_PAGING_COMPLETED, &sig_data);
 	paging_request_stop(msg->trx->bts, subscr);
 
 	/* FIXME: somehow signal the completion of the PAGING to
diff --git a/src/gsm_04_11.c b/src/gsm_04_11.c
index d354663..a7b603e 100644
--- a/src/gsm_04_11.c
+++ b/src/gsm_04_11.c
@@ -119,14 +119,7 @@
 			"UserData: \"%s\"\n", sms->mti, sms->vpf, sms->msg_ref,
 			sms->pid, sms->dcs, sms->ud_len, sms->user_data);
 
-	struct sms_signal_data sig = {
-		.data = {
-			.area   = S_SMS,
-		},
-
-		.sms = sms,
-	};
-	dispatch_signal(&sig.data);
+	dispatch_signal(SS_SMS, 0, sms);
 
 	free(sms);
 
diff --git a/src/paging.c b/src/paging.c
index ed40c07..8597463 100644
--- a/src/paging.c
+++ b/src/paging.c
@@ -164,7 +164,7 @@
 	INIT_LLIST_HEAD(&bts->paging.pending_requests);
 
 	/* Large number, until we get a proper message */
-	bts->paging.available_slots = 0x0;
+	bts->paging.available_slots = 10;
 }
 
 static int paging_pending_request(struct gsm_bts_paging_state *bts,
@@ -182,20 +182,16 @@
 static void paging_T3113_expired(void *data)
 {
 	struct gsm_paging_request *req = (struct gsm_paging_request *)data;
+	struct paging_signal_data sig_data;
 
 	DEBUGP(DPAG, "T3113 expired for request %p (%s)\n",
 		req, req->subscr->imsi);
 	
-	struct paging_signal_data sig_data = {
-		.data = {
-			.area = S_PAGING,
-		},
-		.subscr = req->subscr,
-		.bts	= req->bts,
-		.lchan	= NULL,
-	};
+	sig_data.subscr = req->subscr,
+	sig_data.bts	= req->bts,
+	sig_data.lchan	= NULL,
 
-	dispatch_signal(&sig_data.data);
+	dispatch_signal(SS_PAGING, S_PAGING_COMPLETED, &sig_data);
 	paging_remove_request(&req->bts->paging, req);
 }
 
diff --git a/src/signal.c b/src/signal.c
index 7eae4d9..a7fc28e 100644
--- a/src/signal.c
+++ b/src/signal.c
@@ -27,34 +27,39 @@
 
 struct signal_handler {
 	struct llist_head entry;
-	int areas;
-
-	int (*sig_handler)(struct signal_data *, void*);
+	unsigned int subsys;
+	signal_cbfn *cbfn;
 	void *data;
 };
 
 
-void register_signal_handler(int areas,
-	int (*handler)(struct signal_data *, void *), void *data)
+int register_signal_handler(unsigned int subsys, signal_cbfn *cbfn, void *data)
 {
-	struct signal_handler *sig_data =
-		(struct signal_handler *)malloc(sizeof(*sig_data));
+	struct signal_handler *sig_data = malloc(sizeof(*sig_data));
+
+	if (!sig_data)
+		return -ENOMEM;
+
 	memset(sig_data, 0, sizeof(*sig_data));
 
-
-	sig_data->areas = areas;
+	sig_data->subsys = subsys;
 	sig_data->data = data;
-	sig_data->sig_handler = handler;
+	sig_data->cbfn = cbfn;
+
+	/* FIXME: check if we already have a handler for this subsys/cbfn/data */
+
 	llist_add_tail(&sig_data->entry, &signal_handler_list);
+
+	return 0;
 }
 
-void remove_signal_handler(int areas, int (*sig_handler)(struct signal_data *, void *), void *data)
+void unregister_signal_handler(unsigned int subsys, signal_cbfn *cbfn, void *data)
 {
 	struct signal_handler *handler;
 
 	llist_for_each_entry(handler, &signal_handler_list, entry) {
-		if (handler->sig_handler == sig_handler
-		    && handler->data == data && areas == handler->areas) {
+		if (handler->cbfn == cbfn && handler->data == data 
+		    && subsys == handler->subsys) {
 			llist_del(&handler->entry);
 			free(handler);
 			break;
@@ -63,13 +68,13 @@
 }
 
 
-void dispatch_signal(struct signal_data *data)
+void dispatch_signal(unsigned int subsys, unsigned int signal, void *signal_data)
 {
 	struct signal_handler *handler;
 
 	llist_for_each_entry(handler, &signal_handler_list, entry) {
-		if (handler->areas & data->area) {
-		    (*handler->sig_handler)(data, handler->data);
-		}
+		if (handler->subsys != subsys)
+			continue;
+		(*handler->cbfn)(subsys, signal, handler->data, signal_data);
 	}
 }
diff --git a/src/telnet_interface.c b/src/telnet_interface.c
index b9ef139..e889e74 100644
--- a/src/telnet_interface.c
+++ b/src/telnet_interface.c
@@ -49,8 +49,10 @@
 
 /* per network data */
 static int telnet_new_connection(struct bsc_fd *fd, unsigned int what);
-static int telnet_paging_callback(struct signal_data *signal, void *data);
-static int telnet_sms_callback(struct signal_data *signal, void *data);
+static int telnet_paging_callback(unsigned int subsys, unsigned int signal,
+				  void *handler_data, void *signal_data);
+static int telnet_sms_callback(unsigned int subsys, unsigned int signal,
+				void *handler_data, void *signal_data);
 
 static struct bsc_fd server_socket = {
 	.when	    = BSC_FD_READ,
@@ -91,8 +93,8 @@
 	bsc_register_fd(&server_socket);
 
 	/* register callbacks */
-	register_signal_handler(S_PAGING, telnet_paging_callback, network);
-	register_signal_handler(S_SMS, telnet_sms_callback, network);
+	register_signal_handler(SS_PAGING, telnet_paging_callback, network);
+	register_signal_handler(SS_SMS, telnet_sms_callback, network);
 }
 
 void telnet_write_help(int fd) {
@@ -187,6 +189,7 @@
 		return;
 
 	paging_request(bts, subscr, type);	
+	paging_update_buffer_space(bts, 100);
 }
 
 void telnet_put_channel(struct telnet_connection *connection, const char *imsi) {
@@ -364,10 +367,10 @@
 	return 0;
 }
 
-static int telnet_paging_callback(struct signal_data *signal, void *data)
+static int telnet_paging_callback(unsigned int subsys, unsigned int singal,
+				  void *handler_data, void *signal_data)
 {
-	struct paging_signal_data *paging =
-		(struct paging_signal_data *) signal;
+	struct paging_signal_data *paging = signal_data;
 	struct telnet_connection *con;
 
 	llist_for_each_entry(con, &active_connections, entry) {
@@ -385,14 +388,14 @@
 	return 0;
 }
 
-static int telnet_sms_callback(struct signal_data *signal, void *data)
+static int telnet_sms_callback(unsigned int subsys, unsigned int signal,
+				void *handler_data, void *signal_data)
 {
-	struct sms_signal_data *sms =
-		(struct sms_signal_data *) signal;
+	struct sms_submit *sms = signal_data;
 	struct telnet_connection *con;
 
 	llist_for_each_entry(con, &active_connections, entry) {
-		WRITE_CONNECTION(con->fd.fd, "Incoming SMS: %s\n", sms->sms->user_data);
+		WRITE_CONNECTION(con->fd.fd, "Incoming SMS: %s\n", sms->user_data);
 	}
 
 	return 0;
