diff --git a/openbsc/src/nat/bsc_sccp.c b/openbsc/src/nat/bsc_sccp.c
index cd54b00..4e28ccf 100644
--- a/openbsc/src/nat/bsc_sccp.c
+++ b/openbsc/src/nat/bsc_sccp.c
@@ -101,7 +101,7 @@
 
 	llist_add(&conn->list_entry, &bsc->nat->sccp_connections);
 
-	LOGP(DNAT, LOGL_DEBUG, "Created 0x%x <-> 0x%x mapping for con 0x%p\n",
+	LOGP(DNAT, LOGL_DEBUG, "Created 0x%x <-> 0x%x mapping for con %p\n",
 	     sccp_src_ref_to_int(&conn->real_ref),
 	     sccp_src_ref_to_int(&conn->patched_ref), bsc);
 
@@ -126,13 +126,13 @@
 			continue;
 
 		conn->remote_ref = *parsed->src_local_ref;
-		LOGP(DNAT, LOGL_DEBUG, "Updating 0x%x to remote 0x%x on 0x%p\n",
+		LOGP(DNAT, LOGL_DEBUG, "Updating 0x%x to remote 0x%x on %p\n",
 		     sccp_src_ref_to_int(&conn->patched_ref),
 		     sccp_src_ref_to_int(&conn->remote_ref), bsc);
 		return 0;
 	}
 
-	LOGP(DNAT, LOGL_ERROR, "Referenced connection not found on BSC: 0x%p\n", bsc);
+	LOGP(DNAT, LOGL_ERROR, "Referenced connection not found on BSC: %p\n", bsc);
 	return -1;
 }
 
@@ -148,7 +148,7 @@
 			if (bsc != conn->bsc)
 				continue;
 
-			LOGP(DNAT, LOGL_DEBUG, "Destroy 0x%x <-> 0x%x mapping for con 0x%p\n",
+			LOGP(DNAT, LOGL_DEBUG, "Destroy 0x%x <-> 0x%x mapping for con %p\n",
 				sccp_src_ref_to_int(&conn->real_ref),
 				sccp_src_ref_to_int(&conn->patched_ref), bsc);
 			llist_del(&conn->list_entry);
diff --git a/openbsc/tests/bsc-nat/bsc_nat_test.c b/openbsc/tests/bsc-nat/bsc_nat_test.c
index 966667e..196f187 100644
--- a/openbsc/tests/bsc-nat/bsc_nat_test.c
+++ b/openbsc/tests/bsc-nat/bsc_nat_test.c
@@ -190,7 +190,7 @@
 
 #define VERIFY(con_found, con, msg, ver, str) \
 	if (con_found != con) { \
-		fprintf(stderr, "Failed to find the con: 0x%p\n", con_found); \
+		fprintf(stderr, "Failed to find the con: %p\n", con_found); \
 		abort(); \
 	} \
 	if (memcmp(msg->data, ver, sizeof(ver)) != 0) { \
@@ -217,7 +217,7 @@
 	parsed = bsc_nat_parse(msg);
 	con_found = patch_sccp_src_ref_to_msc(msg, parsed, nat);
 	if (con_found != NULL) {
-		fprintf(stderr, "Con should not exist 0x%p\n", con_found);
+		fprintf(stderr, "Con should not exist %p\n", con_found);
 		abort();
 	}
 	rc = create_sccp_src_ref(con, msg, parsed);
@@ -227,7 +227,7 @@
 	}
 	con_found = patch_sccp_src_ref_to_msc(msg, parsed, nat);
 	if (con_found != con) {
-		fprintf(stderr, "Failed to find the con: 0x%p\n", con_found);
+		fprintf(stderr, "Failed to find the con: %p\n", con_found);
 		abort();
 	}
 	if (memcmp(msg->data, bsc_cr_patched, sizeof(bsc_cr_patched)) != 0) {
@@ -269,7 +269,7 @@
 	parsed = bsc_nat_parse(msg);
 	con_found = patch_sccp_src_ref_to_msc(msg, parsed, nat);
 	if (con_found != con) {
-		fprintf(stderr, "Failed to find the con: 0x%p\n", con_found);
+		fprintf(stderr, "Failed to find the con: %p\n", con_found);
 		abort();
 	}
 	if (memcmp(msg->data, bsc_rlc_patched, sizeof(bsc_rlc_patched)) != 0) {
@@ -281,7 +281,7 @@
 
 	/* verify that it is gone */
 	if (con_found != NULL) {
-		fprintf(stderr, "Con should be gone. 0x%p\n", con_found);
+		fprintf(stderr, "Con should be gone. %p\n", con_found);
 		abort();
 	}
 	talloc_free(parsed);
