diff --git a/openbsc/tests/bsc-nat/bsc_nat_test.c b/openbsc/tests/bsc-nat/bsc_nat_test.c
index d6105ad..31e8cd1 100644
--- a/openbsc/tests/bsc-nat/bsc_nat_test.c
+++ b/openbsc/tests/bsc-nat/bsc_nat_test.c
@@ -229,25 +229,25 @@
 
 
 	/* start testinh with proper messages */
-	fprintf(stderr, "Testing BSS Filtering.\n");
+	printf("Testing BSS Filtering.\n");
 	for (i = 0; i < ARRAY_SIZE(results); ++i) {
 		int result;
 		struct bsc_nat_parsed *parsed;
 		struct msgb *msg = msgb_alloc(4096, "test-message");
 
-		fprintf(stderr, "Going to test item: %d\n", i);
+		printf("Going to test item: %d\n", i);
 		memcpy(msg->data, results[i].data, results[i].length);
 		msg->l2h = msgb_put(msg, results[i].length);
 
 		parsed = bsc_nat_parse(msg);
 		if (!parsed) {
-			fprintf(stderr, "FAIL: Failed to parse the message\n");
+			printf("FAIL: Failed to parse the message\n");
 			continue;
 		}
 
 		result = bsc_nat_filter_ipa(results[i].dir, msg, parsed);
 		if (result != results[i].result) {
-			fprintf(stderr, "FAIL: Not the expected result got: %d wanted: %d\n",
+			printf("FAIL: Not the expected result got: %d wanted: %d\n",
 				result, results[i].result);
 		}
 
@@ -265,12 +265,17 @@
 }
 
 #define VERIFY(con_found, con, msg, ver, str) \
-	if (!con_found || con_found->bsc != con) { \
-		fprintf(stderr, "Failed to find the con: %p\n", con_found); \
-		abort(); \
-	} \
+	if (!con_found) {						\
+		printf("Failed to find connection.\n");			\
+		abort();						\
+	}								\
+	if (con_found->bsc != con) {					\
+		printf("Got connection of the wrong BSC: %d\n",		\
+			con_found->bsc->cfg->nr);			\
+		abort();						\
+	}								\
 	if (memcmp(msg->data, ver, sizeof(ver)) != 0) { \
-		fprintf(stderr, "Failed to patch the %s msg.\n", str); \
+		printf("Failed to patch the %s msg.\n", str); 		\
 		abort(); \
 	}
 
@@ -284,7 +289,7 @@
 	struct bsc_nat_parsed *parsed;
 	struct msgb *msg;
 
-	fprintf(stderr, "Testing connection tracking.\n");
+	printf("Testing connection tracking.\n");
 	nat = bsc_nat_alloc();
 	con = bsc_connection_alloc(nat);
 	con->cfg = bsc_config_alloc(nat, "foo");
@@ -300,25 +305,31 @@
 	parsed = bsc_nat_parse(msg);
 	con_found = patch_sccp_src_ref_to_msc(msg, parsed, con);
 	if (con_found != NULL) {
-		fprintf(stderr, "Con should not exist %p\n", con_found);
+		printf("Con should not exist realref(%u)\n",
+		       sccp_src_ref_to_int(&con_found->real_ref));
 		abort();
 	}
 	rc_con = create_sccp_src_ref(con, parsed);
 	if (!rc_con) {
-		fprintf(stderr, "Failed to create a ref\n");
+		printf("Failed to create a ref\n");
 		abort();
 	}
 	con_found = patch_sccp_src_ref_to_msc(msg, parsed, con);
-	if (!con_found || con_found->bsc != con) {
-		fprintf(stderr, "Failed to find the con: %p\n", con_found);
+	if (!con_found) {
+		printf("Failed to find connection.\n");
+		abort();
+	}
+	if (con_found->bsc != con) {
+		printf("Got connection of the wrong BSC: %d\n",
+			con_found->bsc->cfg->nr);
 		abort();
 	}
 	if (con_found != rc_con) {
-		fprintf(stderr, "Failed to find the right connection.\n");
+		printf("Failed to find the right connection.\n");
 		abort();
 	}
 	if (memcmp(msg->data, bsc_cr_patched, sizeof(bsc_cr_patched)) != 0) {
-		fprintf(stderr, "Failed to patch the BSC CR msg.\n");
+		printf("Failed to patch the BSC CR msg.\n");
 		abort();
 	}
 	talloc_free(parsed);
@@ -329,7 +340,7 @@
 	con_found = patch_sccp_src_ref_to_bsc(msg, parsed, nat);
 	VERIFY(con_found, con, msg, msc_cc_patched, "MSC CC");
 	if (update_sccp_src_ref(con_found, parsed) != 0) {
-		fprintf(stderr, "Failed to update the SCCP con.\n");
+		printf("Failed to update the SCCP con.\n");
 		abort();
 	}
 
@@ -355,12 +366,17 @@
 	copy_to_msg(msg, bsc_rlc, sizeof(bsc_rlc));
 	parsed = bsc_nat_parse(msg);
 	con_found = patch_sccp_src_ref_to_msc(msg, parsed, con);
-	if (!con_found || con_found->bsc != con) {
-		fprintf(stderr, "Failed to find the con: %p\n", con_found);
+	if (!con_found) {
+		printf("Failed to find connection.\n");
+		abort();
+	}
+	if (con_found->bsc != con) {
+		printf("Got connection of the wrong BSC: %d\n",
+			con_found->bsc->cfg->nr);
 		abort();
 	}
 	if (memcmp(msg->data, bsc_rlc_patched, sizeof(bsc_rlc_patched)) != 0) {
-		fprintf(stderr, "Failed to patch the BSC CR msg.\n");
+		printf("Failed to patch the BSC CR msg.\n");
 		abort();
 	}
 	remove_sccp_src_ref(con, msg, parsed);
@@ -372,7 +388,8 @@
 
 	/* verify that it is gone */
 	if (con_found != NULL) {
-		fprintf(stderr, "Con should be gone. %p\n", con_found);
+		printf("Con should not exist real_ref(%u)\n",
+		       sccp_src_ref_to_int(&con_found->real_ref));
 		abort();
 	}
 	talloc_free(parsed);
@@ -389,7 +406,7 @@
 	struct bsc_connection *con;
 	struct bsc_config *cfg;
 
-	fprintf(stderr, "Testing paging by lac.\n");
+	printf("Testing paging by lac.\n");
 
 	nat = bsc_nat_alloc();
 	con = bsc_connection_alloc(nat);
@@ -401,7 +418,7 @@
 
 	/* Test it by not finding it */
 	if (bsc_config_handles_lac(cfg, 8213) != 0) {
-		fprintf(stderr, "Should not be handled.\n");
+		printf("Should not be handled.\n");
 		abort();
 	}
 
@@ -409,7 +426,7 @@
 	bsc_config_del_lac(cfg, 23);
 	bsc_config_add_lac(cfg, 8213);
 	if (bsc_config_handles_lac(cfg, 8213) == 0) {
-		fprintf(stderr, "Should have found it.\n");
+		printf("Should have found it.\n");
 		abort();
 	}
 }
@@ -422,7 +439,7 @@
 	struct sccp_connections con;
 	int i, j, multiplex;
 
-	fprintf(stderr, "Testing MGCP.\n");
+	printf("Testing MGCP.\n");
 	memset(&con, 0, sizeof(con));
 
 	nat = bsc_nat_alloc();
@@ -444,7 +461,7 @@
 	i  = 1;
 	do {
 		if (bsc_assign_endpoint(bsc, &con) != 0) {
-			fprintf(stderr, "failed to allocate... on iteration %d\n", i);
+			printf("failed to allocate... on iteration %d\n", i);
 			break;
 		}
 		++i;
@@ -467,7 +484,7 @@
 	struct bsc_nat_parsed *parsed;
 	struct msgb *msg;
 
-	fprintf(stderr, "Testing MGCP.\n");
+	printf("Testing MGCP.\n");
 	memset(&con, 0, sizeof(con));
 
 	nat = bsc_nat_alloc();
@@ -489,28 +506,28 @@
 
 	if (msg->l2h[16] != 0 ||
 	    msg->l2h[17] != 0x1) {
-		fprintf(stderr, "Input is not as expected.. %s 0x%x\n",
+		printf("Input is not as expected.. %s 0x%x\n",
 			osmo_hexdump(msg->l2h, msgb_l2len(msg)),
 			msg->l2h[17]);
 		abort();
 	}
 
 	if (bsc_mgcp_assign_patch(&con, msg) != 0) {
-		fprintf(stderr, "Failed to handle assignment.\n");
+		printf("Failed to handle assignment.\n");
 		abort();
 	}
 
 	if (con.msc_endp != 1) {
-		fprintf(stderr, "Timeslot should be 1.\n");
+		printf("Timeslot should be 1.\n");
 		abort();
 	}
 
 	if (con.bsc_endp != 0x1) {
-		fprintf(stderr, "Assigned timeslot should have been 1.\n");
+		printf("Assigned timeslot should have been 1.\n");
 		abort();
 	}
 	if (con.bsc->_endpoint_status[0x1] != 1) {
-		fprintf(stderr, "The status on the BSC is wrong.\n");
+		printf("The status on the BSC is wrong.\n");
 		abort();
 	}
 
@@ -519,8 +536,8 @@
 
 	uint16_t cic = htons(timeslot & 0x1f);
 	if (memcmp(&cic, &msg->l2h[16], sizeof(cic)) != 0) {
-		fprintf(stderr, "Message was not patched properly\n");
-		fprintf(stderr, "data cic: 0x%x %s\n", cic, osmo_hexdump(msg->l2h, msgb_l2len(msg)));
+		printf("Message was not patched properly\n");
+		printf("data cic: 0x%x %s\n", cic, osmo_hexdump(msg->l2h, msgb_l2len(msg)));
 		abort();
 	}
 
@@ -529,7 +546,7 @@
 	bsc_mgcp_dlcx(&con);
 	if (con.bsc_endp != -1 || con.msc_endp != -1 ||
 	    con.bsc->_endpoint_status[1] != 0 || con.bsc->last_endpoint != 0x1) {
-		fprintf(stderr, "Clearing should remove the mapping.\n");
+		printf("Clearing should remove the mapping.\n");
 		abort();
 	}
 
@@ -544,7 +561,7 @@
 	struct bsc_connection *con;
 	struct sccp_connections *sccp_con;
 
-	fprintf(stderr, "Testing finding of a BSC Connection\n");
+	printf("Testing finding of a BSC Connection\n");
 
 	nat = bsc_nat_alloc();
 	con = bsc_connection_alloc(nat);
@@ -557,12 +574,12 @@
 	llist_add(&sccp_con->list_entry, &nat->sccp_connections);
 
 	if (bsc_mgcp_find_con(nat, 11) != NULL) {
-		fprintf(stderr, "Found the wrong connection.\n");
+		printf("Found the wrong connection.\n");
 		abort();
 	}
 
 	if (bsc_mgcp_find_con(nat, 12) != sccp_con) {
-		fprintf(stderr, "Didn't find the connection\n");
+		printf("Didn't find the connection\n");
 		abort();
 	}
 
@@ -574,7 +591,7 @@
 {
 	int i;
 	struct msgb *output;
-	fprintf(stderr, "Test rewriting MGCP messages.\n");
+	printf("Testing rewriting MGCP messages.\n");
 
 	for (i = 0; i < ARRAY_SIZE(mgcp_messages); ++i) {
 		const char *orig = mgcp_messages[i].orig;
@@ -586,13 +603,13 @@
 
 		output = bsc_mgcp_rewrite(input, strlen(input), 0x1e, ip, port);
 		if (msgb_l2len(output) != strlen(patc)) {
-			fprintf(stderr, "Wrong sizes for test: %d  %d != %d != %d\n", i, msgb_l2len(output), strlen(patc), strlen(orig));
-			fprintf(stderr, "String '%s' vs '%s'\n", (const char *) output->l2h, patc);
+			printf("Wrong sizes for test: %d  %d != %d != %d\n", i, msgb_l2len(output), strlen(patc), strlen(orig));
+			printf("String '%s' vs '%s'\n", (const char *) output->l2h, patc);
 			abort();
 		}
 
 		if (memcmp(output->l2h, patc, msgb_l2len(output)) != 0) {
-			fprintf(stderr, "Broken on %d msg: '%s'\n", i, (const char *) output->l2h);
+			printf("Broken on %d msg: '%s'\n", i, (const char *) output->l2h);
 			abort();
 		}
 
@@ -606,26 +623,26 @@
 	int code, ci;
 	char transaction[60];
 
-	fprintf(stderr, "Test MGCP response parsing.\n");
+	printf("Testing MGCP response parsing.\n");
 
 	if (bsc_mgcp_parse_response(crcx_resp, &code, transaction) != 0) {
-		fprintf(stderr, "Failed to parse CRCX resp.\n");
+		printf("Failed to parse CRCX resp.\n");
 		abort();
 	}
 
 	if (code != 200) {
-		fprintf(stderr, "Failed to parse the CODE properly. Got: %d\n", code);
+		printf("Failed to parse the CODE properly. Got: %d\n", code);
 		abort();
 	}
 
 	if (strcmp(transaction, "23265295") != 0) {
-		fprintf(stderr, "Failed to parse transaction id: '%s'\n", transaction);
+		printf("Failed to parse transaction id: '%s'\n", transaction);
 		abort();
 	}
 
 	ci = bsc_mgcp_extract_ci(crcx_resp);
 	if (ci != 1) {
-		fprintf(stderr, "Failed to parse the CI. Got: %d\n", ci);
+		printf("Failed to parse the CI. Got: %d\n", ci);
 		abort();
 	}
 }
@@ -760,18 +777,18 @@
 
 		parsed = bsc_nat_parse(msg);
 		if (!parsed) {
-			fprintf(stderr, "FAIL: Failed to parse the message\n");
+			printf("FAIL: Failed to parse the message\n");
 			abort();
 		}
 
 		res = bsc_nat_filter_sccp_cr(bsc, msg, parsed, &contype, &imsi);
 		if (res != cr_filter[i].result) {
-			fprintf(stderr, "FAIL: Wrong result %d for test %d.\n", res, i);
+			printf("FAIL: Wrong result %d for test %d.\n", res, i);
 			abort();
 		}
 
 		if (contype != cr_filter[i].contype) {
-			fprintf(stderr, "FAIL: Wrong contype %d for test %d.\n", res, contype);
+			printf("FAIL: Wrong contype %d for test %d.\n", res, contype);
 			abort();
 		}
 
@@ -801,23 +818,23 @@
 
 	parsed = bsc_nat_parse(msg);
 	if (!parsed) {
-		fprintf(stderr, "FAIL: Could not parse ID resp\n");
+		printf("FAIL: Could not parse ID resp\n");
 		abort();
 	}
 
 	if (parsed->bssap != BSSAP_MSG_DTAP) {
-		fprintf(stderr, "FAIL: It should be dtap\n");
+		printf("FAIL: It should be dtap\n");
 		abort();
 	}
 
 	/* gsm_type is actually the size of the dtap */
 	if (parsed->gsm_type < msgb_l3len(msg) - 3) {
-		fprintf(stderr, "FAIL: Not enough space for the content\n");
+		printf("FAIL: Not enough space for the content\n");
 		abort();
 	}
 
 	if (bsc_nat_filter_dt(bsc, msg, con, parsed) != 1) {
-		fprintf(stderr, "FAIL: Should have passed..\n");
+		printf("FAIL: Should have passed..\n");
 		abort();
 	}
 
@@ -861,23 +878,23 @@
 	copy_to_msg(msg, cc_setup_international, ARRAY_SIZE(cc_setup_international));
 	parsed = bsc_nat_parse(msg);
 	if (!parsed) {
-		fprintf(stderr, "FAIL: Could not parse ID resp\n");
+		printf("FAIL: Could not parse ID resp\n");
 		abort();
 	}
 
 	out = bsc_nat_rewrite_msg(nat, msg, parsed, imsi);
 	if (msg != out) {
-		fprintf(stderr, "FAIL: The message should not have been changed\n");
+		printf("FAIL: The message should not have been changed\n");
 		abort();
 	}
 
 	if (out->len != ARRAY_SIZE(cc_setup_international)) {
-		fprintf(stderr, "FAIL: Length of message changed\n");
+		printf("FAIL: Length of message changed\n");
 		abort();
 	}
 
 	if (memcmp(out->data, cc_setup_international, out->len) != 0) {
-		fprintf(stderr, "FAIL: Content modified..\n");
+		printf("FAIL: Content modified..\n");
 		abort();
 	}
 	talloc_free(parsed);
@@ -887,29 +904,29 @@
 	copy_to_msg(msg, cc_setup_national, ARRAY_SIZE(cc_setup_national));
 	parsed = bsc_nat_parse(msg);
 	if (!parsed) {
-		fprintf(stderr, "FAIL: Could not parse ID resp\n");
+		printf("FAIL: Could not parse ID resp\n");
 		abort();
 	}
 
 	out = bsc_nat_rewrite_msg(nat, msg, parsed, imsi);
 	if (!out) {
-		fprintf(stderr, "FAIL: A new message should be created.\n");
+		printf("FAIL: A new message should be created.\n");
 		abort();
 	}
 
 	if (msg == out) {
-		fprintf(stderr, "FAIL: The message should have changed\n");
+		printf("FAIL: The message should have changed\n");
 		abort();
 	}
 
 	if (out->len != ARRAY_SIZE(cc_setup_national_patched)) {
-		fprintf(stderr, "FAIL: Length is wrong.\n");
+		printf("FAIL: Length is wrong.\n");
 		abort();
 	}
 
 	if (memcmp(cc_setup_national_patched, out->data, out->len) != 0) {
-		fprintf(stderr, "FAIL: Data is wrong.\n");
-		fprintf(stderr, "Data was: %s\n", osmo_hexdump(out->data, out->len));
+		printf("FAIL: Data is wrong.\n");
+		printf("Data was: %s\n", osmo_hexdump(out->data, out->len));
 		abort();
 	}
 
@@ -922,29 +939,29 @@
 	copy_to_msg(msg, cc_setup_national, ARRAY_SIZE(cc_setup_national));
 	parsed = bsc_nat_parse(msg);
 	if (!parsed) {
-		fprintf(stderr, "FAIL: Could not parse ID resp\n");
+		printf("FAIL: Could not parse ID resp\n");
 		abort();
 	}
 
 	out = bsc_nat_rewrite_msg(nat, msg, parsed, imsi);
 	if (!out) {
-		fprintf(stderr, "FAIL: A new message should be created.\n");
+		printf("FAIL: A new message should be created.\n");
 		abort();
 	}
 
 	if (msg == out) {
-		fprintf(stderr, "FAIL: The message should have changed\n");
+		printf("FAIL: The message should have changed\n");
 		abort();
 	}
 
 	if (out->len != ARRAY_SIZE(cc_setup_national_patched)) {
-		fprintf(stderr, "FAIL: Length is wrong.\n");
+		printf("FAIL: Length is wrong.\n");
 		abort();
 	}
 
 	if (memcmp(cc_setup_national_patched, out->data, out->len) != 0) {
-		fprintf(stderr, "FAIL: Data is wrong.\n");
-		fprintf(stderr, "Data was: %s\n", osmo_hexdump(out->data, out->len));
+		printf("FAIL: Data is wrong.\n");
+		printf("Data was: %s\n", osmo_hexdump(out->data, out->len));
 		abort();
 	}
 
@@ -957,23 +974,23 @@
 	copy_to_msg(msg, cc_setup_national, ARRAY_SIZE(cc_setup_national));
 	parsed = bsc_nat_parse(msg);
 	if (!parsed) {
-		fprintf(stderr, "FAIL: Could not parse ID resp\n");
+		printf("FAIL: Could not parse ID resp\n");
 		abort();
 	}
 
 	out = bsc_nat_rewrite_msg(nat, msg, parsed, imsi);
 	if (out != msg) {
-		fprintf(stderr, "FAIL: The message should be unchanged.\n");
+		printf("FAIL: The message should be unchanged.\n");
 		abort();
 	}
 
 	if (out->len != ARRAY_SIZE(cc_setup_national)) {
-		fprintf(stderr, "FAIL: Foo\n");
+		printf("FAIL: Foo\n");
 		abort();
 	}
 
 	if (memcmp(out->data, cc_setup_national, ARRAY_SIZE(cc_setup_national)) != 0) {
-		fprintf(stderr, "FAIL: The message should really be unchanged.\n");
+		printf("FAIL: The message should really be unchanged.\n");
 		abort();
 	}
 
@@ -1010,23 +1027,23 @@
 	copy_to_msg(msg, smsc_rewrite, ARRAY_SIZE(smsc_rewrite));
 	parsed = bsc_nat_parse(msg);
 	if (!parsed) {
-		fprintf(stderr, "FAIL: Could not parse SMS\n");
+		printf("FAIL: Could not parse SMS\n");
 		abort();
 	}
 
 	out = bsc_nat_rewrite_msg(nat, msg, parsed, imsi);
 	if (out == msg) {
-		fprintf(stderr, "FAIL: This should have changed.\n");
+		printf("FAIL: This should have changed.\n");
 		abort();
 	}
 
 	if (out->len != ARRAY_SIZE(smsc_rewrite_patched)) {
-		fprintf(stderr, "FAIL: The size should match.\n");
+		printf("FAIL: The size should match.\n");
 		abort();
 	}
 
 	if (memcmp(out->data, smsc_rewrite_patched, out->len) != 0) {
-		fprintf(stderr, "FAIL: the data should be changed.\n");
+		printf("FAIL: the data should be changed.\n");
 		abort();
 	}
 }
@@ -1048,5 +1065,7 @@
 	test_setup_rewrite();
 	test_smsc_rewrite();
 	test_mgcp_allocations();
+
+	printf("Testing execution completed.\n");
 	return 0;
 }
