diff --git a/tests/msc_vlr/Makefile.am b/tests/msc_vlr/Makefile.am
index 6d51d6e..3ae0c84 100644
--- a/tests/msc_vlr/Makefile.am
+++ b/tests/msc_vlr/Makefile.am
@@ -50,13 +50,6 @@
 	$(top_builddir)/src/libtrau/libtrau.a \
 	$(top_builddir)/src/libmgcp/libmgcp.a \
 	$(top_builddir)/src/libcommon/libcommon.a \
-	$(NULL)
-if BUILD_IU
-COMMON_LDADD += \
-	$(top_builddir)/src/libiu/libiu.a \
-	$(NULL)
-endif
-COMMON_LDADD += \
 	$(LIBSMPP34_LIBS) \
 	$(LIBOSMOCORE_LIBS) \
 	$(LIBOSMOGSM_LIBS) \
@@ -76,10 +69,10 @@
 	-Wl,--wrap=a_iface_tx_dtap \
 	-Wl,--wrap=a_iface_tx_clear_cmd \
 	-Wl,--wrap=a_iface_tx_paging \
-	-Wl,--wrap=iu_tx \
-	-Wl,--wrap=iu_tx_release \
-	-Wl,--wrap=iu_tx_common_id \
-	-Wl,--wrap=iu_page_cs \
+	-Wl,--wrap=ranap_iu_tx \
+	-Wl,--wrap=ranap_iu_tx_release \
+	-Wl,--wrap=ranap_iu_tx_common_id \
+	-Wl,--wrap=ranap_iu_page_cs \
 	-Wl,--wrap=msc_stop_paging \
 	-Wl,--wrap=gsm340_gen_scts \
 	-Wl,--wrap=RAND_bytes \
diff --git a/tests/msc_vlr/msc_vlr_tests.c b/tests/msc_vlr/msc_vlr_tests.c
index a45b10f..3966aac 100644
--- a/tests/msc_vlr/msc_vlr_tests.c
+++ b/tests/msc_vlr/msc_vlr_tests.c
@@ -34,8 +34,13 @@
 #include <openbsc/gsm_04_11.h>
 #include <openbsc/bsc_subscriber.h>
 #include <openbsc/debug.h>
-#include <openbsc/iu.h>
+
+#if BUILD_IU
 #include <openbsc/iucs_ranap.h>
+#include <osmocom/ranap/iu_client.h>
+#else
+#include <openbsc/iu_dummy.h>
+#endif
 
 #include "msc_vlr_tests.h"
 
@@ -152,8 +157,8 @@
 	conn->bts = the_bts;
 	conn->via_ran = rx_from_ran;
 	if (conn->via_ran == RAN_UTRAN_IU) {
-		struct ue_conn_ctx *ue_ctx = talloc_zero(conn, struct ue_conn_ctx);
-		*ue_ctx = (struct ue_conn_ctx){
+		struct ranap_ue_conn_ctx *ue_ctx = talloc_zero(conn, struct ranap_ue_conn_ctx);
+		*ue_ctx = (struct ranap_ue_conn_ctx){
 			.conn_id = 42,
 		};
 		conn->iu.ue_ctx = ue_ctx;
@@ -295,9 +300,9 @@
 	return 1;
 }
 
-/* override, requires '-Wl,--wrap=iu_page_cs' */
-int __real_iu_page_cs(const char *imsi, const uint32_t *tmsi, uint16_t lac);
-int __wrap_iu_page_cs(const char *imsi, const uint32_t *tmsi, uint16_t lac)
+/* override, requires '-Wl,--wrap=ranap_iu_page_cs' */
+int __real_ranap_iu_page_cs(const char *imsi, const uint32_t *tmsi, uint16_t lac);
+int __wrap_ranap_iu_page_cs(const char *imsi, const uint32_t *tmsi, uint16_t lac)
 {
 	return _paging_sent(RAN_UTRAN_IU, imsi, tmsi ? *tmsi : GSM_RESERVED_TMSI, lac);
 }
@@ -472,16 +477,16 @@
 	return 0;
 }
 
-/* override, requires '-Wl,--wrap=iu_tx' */
-int __real_iu_tx(struct msgb *msg, uint8_t sapi);
-int __wrap_iu_tx(struct msgb *msg, uint8_t sapi)
+/* override, requires '-Wl,--wrap=ranap_iu_tx' */
+int __real_ranap_iu_tx(struct msgb *msg, uint8_t sapi);
+int __wrap_ranap_iu_tx(struct msgb *msg, uint8_t sapi)
 {
 	return _validate_dtap(msg, RAN_UTRAN_IU);
 }
 
-/* override, requires '-Wl,--wrap=iu_tx_release' */
-int __real_iu_tx_release(struct ue_conn_ctx *ctx, const struct RANAP_Cause *cause);
-int __wrap_iu_tx_release(struct ue_conn_ctx *ctx, const struct RANAP_Cause *cause)
+/* override, requires '-Wl,--wrap=ranap_iu_tx_release' */
+int __real_ranap_iu_tx_release(struct ranap_ue_conn_ctx *ctx, const struct RANAP_Cause *cause);
+int __wrap_ranap_iu_tx_release(struct ranap_ue_conn_ctx *ctx, const struct RANAP_Cause *cause)
 {
 	btw("Iu Release --%s--> MS", ran_type_name(RAN_UTRAN_IU));
 	OSMO_ASSERT(iu_release_expected);
@@ -491,8 +496,8 @@
 }
 
 /* override, requires '-Wl,--wrap=iu_tx_common_id' */
-int __real_iu_tx_common_id(struct ue_conn_ctx *ue_ctx, const char *imsi);
-int __wrap_iu_tx_common_id(struct ue_conn_ctx *ue_ctx, const char *imsi)
+int __real_ranap_iu_tx_common_id(struct ranap_ue_conn_ctx *ue_ctx, const char *imsi);
+int __wrap_ranap_iu_tx_common_id(struct ranap_ue_conn_ctx *ue_ctx, const char *imsi)
 {
 	btw("Iu Common ID --%s--> MS (IMSI=%s)", ran_type_name(RAN_UTRAN_IU), imsi);
 	return 0;
diff --git a/tests/sgsn/Makefile.am b/tests/sgsn/Makefile.am
index f1606cb..ccb8f44 100644
--- a/tests/sgsn/Makefile.am
+++ b/tests/sgsn/Makefile.am
@@ -74,7 +74,6 @@
 
 if BUILD_IU
 sgsn_test_LDADD += \
-	$(top_builddir)/src/libiu/libiu.a \
 	$(LIBOSMORANAP_LIBS) \
 	$(LIBOSMOSIGTRAN_LIBS) \
 	$(LIBASN1C_LIBS) \
diff --git a/tests/sms_queue/Makefile.am b/tests/sms_queue/Makefile.am
index d17f996..62c479b 100644
--- a/tests/sms_queue/Makefile.am
+++ b/tests/sms_queue/Makefile.am
@@ -37,13 +37,6 @@
 	$(top_builddir)/src/libmgcp/libmgcp.a \
 	$(top_builddir)/src/libcommon/libcommon.a \
 	$(top_builddir)/src/libcommon-cs/libcommon-cs.a \
-	$(NULL)
-if BUILD_IU
-sms_queue_test_LDADD += \
-	$(top_builddir)/src/libiu/libiu.a \
-	$(NULL)
-endif
-sms_queue_test_LDADD += \
 	$(LIBSMPP34_LIBS) \
 	$(LIBOSMOCORE_LIBS) \
 	$(LIBOSMOGSM_LIBS) \
