diff --git a/openbsc/src/libbsc/handover_logic.c b/openbsc/src/libbsc/handover_logic.c
index d2cd5ef..9cf26af 100644
--- a/openbsc/src/libbsc/handover_logic.c
+++ b/openbsc/src/libbsc/handover_logic.c
@@ -329,23 +329,6 @@
 	return 0;
 }
 
-static int ho_ipac_crcx_ack(struct gsm_lchan *new_lchan)
-{
-	struct bsc_handover *ho;
-	struct ho_signal_data sig_ho;
-
-	ho = bsc_ho_by_new_lchan(new_lchan);
-	if (!ho) {
-		/* it is perfectly normal, we have CRCX even in non-HO cases */
-		return 0;
-	}
-
-	sig_ho.old_lchan = ho->old_lchan;
-	sig_ho.new_lchan = new_lchan;
-	osmo_signal_dispatch(SS_HO, S_HANDOVER_ACK, &sig_ho);
-	return 0;
-}
-
 static int ho_logic_sig_cb(unsigned int subsys, unsigned int signal,
 			   void *handler_data, void *signal_data)
 {
@@ -369,14 +352,6 @@
 			return ho_gsm48_ho_fail(lchan);
 		}
 		break;
-	case SS_ABISIP:
-		lchan = signal_data;
-		switch (signal) {
-		case S_ABISIP_CRCX_ACK:
-			return ho_ipac_crcx_ack(lchan);
-			break;
-		}
-		break;
 	default:
 		break;
 	}
@@ -384,8 +359,16 @@
 	return 0;
 }
 
+struct gsm_lchan *bsc_handover_pending(struct gsm_lchan *new_lchan)
+{
+	struct bsc_handover *ho;
+	ho = bsc_ho_by_new_lchan(new_lchan);
+	if (!ho)
+		return NULL;
+	return ho->old_lchan;
+}
+
 static __attribute__((constructor)) void on_dso_load_ho_logic(void)
 {
 	osmo_signal_register_handler(SS_LCHAN, ho_logic_sig_cb, NULL);
-	osmo_signal_register_handler(SS_ABISIP, ho_logic_sig_cb, NULL);
 }
