diff --git a/openbsc/src/nat/bsc_mgcp_utils.c b/openbsc/src/nat/bsc_mgcp_utils.c
index ef55f8a..48be904 100644
--- a/openbsc/src/nat/bsc_mgcp_utils.c
+++ b/openbsc/src/nat/bsc_mgcp_utils.c
@@ -42,8 +42,8 @@
 	struct sccp_connections *mcon;
 	struct tlv_parsed tp;
 	u_int16_t cic;
-	u_int8_t timeslot;
-	u_int8_t multiplex;
+	uint8_t timeslot;
+	uint8_t multiplex;
 	int combined;
 
 	if (!msg->l3h) {
@@ -140,7 +140,7 @@
 		return;
 	}
 
-	bsc_write_mgcp(bsc, (u_int8_t *) buf, len);
+	bsc_write_mgcp(bsc, (uint8_t *) buf, len);
 }
 
 void bsc_mgcp_init(struct sccp_connections *con)
diff --git a/openbsc/src/nat/bsc_nat.c b/openbsc/src/nat/bsc_nat.c
index 6d3110e..dd0f240 100644
--- a/openbsc/src/nat/bsc_nat.c
+++ b/openbsc/src/nat/bsc_nat.c
@@ -72,7 +72,7 @@
 	"There is NO WARRANTY, to the extent permitted by law.\n";
 
 static struct bsc_nat *nat;
-static void bsc_send_data(struct bsc_connection *bsc, const u_int8_t *data, unsigned int length, int);
+static void bsc_send_data(struct bsc_connection *bsc, const uint8_t *data, unsigned int length, int);
 static void msc_send_reset(struct bsc_msc_connection *con);
 
 struct bsc_config *bsc_config_num(struct bsc_nat *nat, int num)
@@ -89,7 +89,7 @@
 /*
  * below are stubs we need to link
  */
-int nm_state_event(enum nm_evt evt, u_int8_t obj_class, void *obj,
+int nm_state_event(enum nm_evt evt, uint8_t obj_class, void *obj,
 		   struct gsm_nm_state *old_state, struct gsm_nm_state *new_state,
 		   struct abis_om_obj_inst *obj_ins)
 {
@@ -109,7 +109,7 @@
 
 static void send_reset_ack(struct bsc_connection *bsc)
 {
-	static const u_int8_t gsm_reset_ack[] = {
+	static const uint8_t gsm_reset_ack[] = {
 		0x09, 0x00, 0x03, 0x07, 0x0b, 0x04, 0x43, 0x01,
 		0x00, 0xfe, 0x04, 0x43, 0x5c, 0x00, 0xfe, 0x03,
 		0x00, 0x01, 0x31,
@@ -120,7 +120,7 @@
 
 static void send_ping(struct bsc_connection *bsc)
 {
-	static const u_int8_t id_ping[] = {
+	static const uint8_t id_ping[] = {
 		IPAC_MSGT_PING,
 	};
 
@@ -129,7 +129,7 @@
 
 static void send_pong(struct bsc_connection *bsc)
 {
-	static const u_int8_t id_pong[] = {
+	static const uint8_t id_pong[] = {
 		IPAC_MSGT_PONG,
 	};
 
@@ -172,7 +172,7 @@
 
 static void send_id_ack(struct bsc_connection *bsc)
 {
-	static const u_int8_t id_ack[] = {
+	static const uint8_t id_ack[] = {
 		IPAC_MSGT_ID_ACK
 	};
 
@@ -181,7 +181,7 @@
 
 static void send_id_req(struct bsc_connection *bsc)
 {
-	static const u_int8_t id_req[] = {
+	static const uint8_t id_req[] = {
 		IPAC_MSGT_ID_GET,
 		0x01, IPAC_IDTAG_UNIT,
 		0x01, IPAC_IDTAG_MACADDR,
@@ -245,7 +245,7 @@
 
 static void send_mgcp_reset(struct bsc_connection *bsc)
 {
-	static const u_int8_t mgcp_reset[] = {
+	static const uint8_t mgcp_reset[] = {
 	    "RSIP 1 13@mgw MGCP 1.0\r\n"
 	};
 
@@ -279,7 +279,7 @@
 /*
  * Currently we are lacking refcounting so we need to copy each message.
  */
-static void bsc_send_data(struct bsc_connection *bsc, const u_int8_t *data, unsigned int length, int proto)
+static void bsc_send_data(struct bsc_connection *bsc, const uint8_t *data, unsigned int length, int proto)
 {
 	struct msgb *msg;
 
@@ -503,7 +503,7 @@
 
 static void msc_send_reset(struct bsc_msc_connection *msc_con)
 {
-	static const u_int8_t reset[] = {
+	static const uint8_t reset[] = {
 		0x00, 0x12, 0xfd,
 		0x09, 0x00, 0x03, 0x05, 0x07, 0x02, 0x42, 0xfe,
 		0x02, 0x42, 0xfe, 0x06, 0x00, 0x04, 0x30, 0x04,
diff --git a/openbsc/src/nat/bsc_nat_utils.c b/openbsc/src/nat/bsc_nat_utils.c
index 39de817..5418dc1 100644
--- a/openbsc/src/nat/bsc_nat_utils.c
+++ b/openbsc/src/nat/bsc_nat_utils.c
@@ -134,7 +134,7 @@
 {
 	struct bsc_connection *bsc;
 	int data_length;
-	const u_int8_t *data;
+	const uint8_t *data;
 	struct tlv_parsed tp;
 	int i = 0;
 
@@ -179,7 +179,7 @@
 	return NULL;
 }
 
-int bsc_write_mgcp(struct bsc_connection *bsc, const u_int8_t *data, unsigned int length)
+int bsc_write_mgcp(struct bsc_connection *bsc, const uint8_t *data, unsigned int length)
 {
 	struct msgb *msg;
 
@@ -287,7 +287,7 @@
 
 static int _cr_check_loc_upd(struct bsc_connection *bsc, uint8_t *data, unsigned int length)
 {
-	u_int8_t mi_type;
+	uint8_t mi_type;
 	struct gsm48_loc_upd_req *lu;
 	char mi_string[GSM48_MI_SIZE];
 
@@ -348,7 +348,7 @@
 {
 	struct gsm48_pag_resp *resp;
 	char mi_string[GSM48_MI_SIZE];
-	u_int8_t mi_type;
+	uint8_t mi_type;
 
 	if (length < sizeof(*resp)) {
 		LOGP(DNAT, LOGL_ERROR, "PAG RESP does not fit. Length was %d.\n", length);
