diff --git a/include/openbsc/gsm_data.h b/include/openbsc/gsm_data.h
index 25da171..7c320d8 100644
--- a/include/openbsc/gsm_data.h
+++ b/include/openbsc/gsm_data.h
@@ -253,6 +253,8 @@
 	struct gsm_paging_request *last_request;
 	struct gsm_bts *bts;
 
+	struct timer_list work_timer;
+
 	/* load */
 	u_int16_t available_slots;
 };
diff --git a/include/openbsc/paging.h b/include/openbsc/paging.h
index 8fdae02..fd9dc02 100644
--- a/include/openbsc/paging.h
+++ b/include/openbsc/paging.h
@@ -37,7 +37,8 @@
 		    int type, gsm_cbfn *cbfn, void *data);
 
 /* stop paging requests */
-void paging_request_stop(struct gsm_bts *bts, struct gsm_subscriber *subscr);
+void paging_request_stop(struct gsm_bts *bts, struct gsm_subscriber *subscr,
+			 struct gsm_lchan *lchan);
 
 /* update paging load */
 void paging_update_buffer_space(struct gsm_bts *bts, u_int16_t);
diff --git a/src/paging.c b/src/paging.c
index e220fb8..4de93c6 100644
--- a/src/paging.c
+++ b/src/paging.c
@@ -125,8 +125,9 @@
 	 * Determine if the pending_requests list is empty and
 	 * return then.
 	 */
-	if (&paging_bts->pending_requests == paging_bts->pending_requests.next) {
+	if (llist_empty(&paging_bts->pending_requests)) {
 		paging_bts->last_request = NULL;
+		/* since the list is empty, no need to reschedule the timer */
 		return;
 	}
 
@@ -156,15 +157,26 @@
 		current_request = paging_bts->last_request;
 	} while (paging_bts->available_slots > 0
 		    &&  initial_request != current_request);
+
+	schedule_timer(&paging_bts->work_timer, 1, 0);
+}
+
+static void paging_worker(void *data)
+{
+	struct gsm_bts_paging_state *paging_bts = data;
+
+	paging_handle_pending_requests(paging_bts);
 }
 
 void paging_init(struct gsm_bts *bts)
 {
 	bts->paging.bts = bts;
 	INIT_LLIST_HEAD(&bts->paging.pending_requests);
+	bts->paging.work_timer.cb = paging_worker;
+	bts->paging.work_timer.data = &bts->paging;
 
 	/* Large number, until we get a proper message */
-	bts->paging.available_slots = 10;
+	bts->paging.available_slots = 100;
 }
 
 static int paging_pending_request(struct gsm_bts_paging_state *bts,
@@ -193,7 +205,7 @@
 
 	dispatch_signal(SS_PAGING, S_PAGING_COMPLETED, &sig_data);
 	if (req->cbfn)
-		req->cbfn(GSM_HOOK_RR_PAGING, GSM_PAGING_EXPIRED, NULL, req,
+		req->cbfn(GSM_HOOK_RR_PAGING, GSM_PAGING_EXPIRED, NULL, NULL,
 			  req->cbfn_param);
 	paging_remove_request(&req->bts->paging, req);
 }
@@ -220,10 +232,14 @@
 	req->T3113.data = req;
 	schedule_timer(&req->T3113, T3113_VALUE);
 	llist_add_tail(&req->entry, &bts_entry->pending_requests);
+
+	if (!timer_pending(&bts_entry->work_timer))
+		schedule_timer(&bts_entry->work_timer, 1, 0);
 }
 
 /* we consciously ignore the type of the request here */
-void paging_request_stop(struct gsm_bts *bts, struct gsm_subscriber *subscr)
+void paging_request_stop(struct gsm_bts *bts, struct gsm_subscriber *subscr,
+			 struct gsm_lchan *lchan)
 {
 	struct gsm_bts_paging_state *bts_entry = &bts->paging;
 	struct gsm_paging_request *req, *req2;
@@ -233,7 +249,7 @@
 		if (req->subscr == subscr) {
 			if (req->cbfn)
 				req->cbfn(GSM_HOOK_RR_PAGING, GSM_PAGING_SUCCEEDED,
-					  NULL, req, req->cbfn_param);
+					  NULL, lchan, req->cbfn_param);
 			paging_remove_request(&bts->paging, req);
 			break;
 		}
@@ -243,5 +259,4 @@
 void paging_update_buffer_space(struct gsm_bts *bts, u_int16_t free_slots)
 {
 	bts->paging.available_slots = free_slots;
-	paging_handle_pending_requests(&bts->paging);
 }
