diff --git a/src/bss_patch.c b/src/bss_patch.c
index d8d5405..2fa39a7 100644
--- a/src/bss_patch.c
+++ b/src/bss_patch.c
@@ -34,7 +34,7 @@
 static void patch_ass_rqst(struct msgb *msg, int length)
 {
 	struct tlv_parsed tp;
-	u_int8_t *data, audio;
+	uint8_t *data, audio;
 	int len;
 
 	tlv_parse(&tp, gsm0808_att_tlvdef(), msg->l3h + 1, length - 1, 0, 0);
@@ -42,7 +42,7 @@
 	if (len < 3)
 		return;
 
-	data = (u_int8_t *) TLVP_VAL(&tp, GSM0808_IE_CHANNEL_TYPE);
+	data = (uint8_t *) TLVP_VAL(&tp, GSM0808_IE_CHANNEL_TYPE);
 	/* no speech... ignore */
 	if ((data[0] & 0xf) != 0x1)
 		return;
@@ -58,7 +58,7 @@
 static void patch_ass_cmpl(struct msgb *msg, int length)
 {
 	struct tlv_parsed tp;
-	u_int8_t *data;
+	uint8_t *data;
 
 	tlv_parse(&tp, gsm0808_att_tlvdef(), msg->l3h + 1, length - 1, 0, 0);
 	if (!TLVP_PRESENT(&tp, GSM0808_IE_CHOSEN_CHANNEL)) {
@@ -72,10 +72,10 @@
 	}
 
 	/* claim to have a TCH/H with no mode indication */
-	data = (u_int8_t *) TLVP_VAL(&tp, GSM0808_IE_CHOSEN_CHANNEL);
+	data = (uint8_t *) TLVP_VAL(&tp, GSM0808_IE_CHOSEN_CHANNEL);
 	data[0] = 0x09;
 
-	data = (u_int8_t *) TLVP_VAL(&tp, GSM0808_IE_SPEECH_VERSION);
+	data = (uint8_t *) TLVP_VAL(&tp, GSM0808_IE_SPEECH_VERSION);
 	data[0] = GSM0808_PERM_HR3;
 }
 
@@ -244,8 +244,8 @@
 static int patch_address(u_int32_t offset, int pc, struct msgb *msg)
 {
 	struct sccp_called_party_address *party;
-	u_int8_t *the_pc;
-	u_int8_t pc_low, pc_high;
+	uint8_t *the_pc;
+	uint8_t pc_low, pc_high;
 
 	party = (struct sccp_called_party_address *)(msg->l2h + offset + 1);
 	the_pc = &party->data[0];
diff --git a/src/bssap_sccp.c b/src/bssap_sccp.c
index 72e24ae..e6b7271 100644
--- a/src/bssap_sccp.c
+++ b/src/bssap_sccp.c
@@ -130,7 +130,7 @@
 
 struct msgb *create_reset()
 {
-	static const u_int8_t reset[] = {
+	static const uint8_t reset[] = {
 		0x09, 0x00, 0x03, 0x05, 0x07, 0x02, 0x42, 0xfe,
 		0x02, 0x42, 0xfe, 0x06, 0x00, 0x04, 0x30, 0x04,
 		0x01, 0x20
diff --git a/src/input/ipaccess.c b/src/input/ipaccess.c
index b679476..b603015 100644
--- a/src/input/ipaccess.c
+++ b/src/input/ipaccess.c
@@ -44,9 +44,9 @@
 
 #define TS1_ALLOC_SIZE	4096
 
-static const u_int8_t pong[] = { 0, 1, IPAC_PROTO_IPACCESS, IPAC_MSGT_PONG };
-static const u_int8_t id_ack[] = { 0, 1, IPAC_PROTO_IPACCESS, IPAC_MSGT_ID_ACK };
-static const u_int8_t id_req[] = { 0, 17, IPAC_PROTO_IPACCESS, IPAC_MSGT_ID_GET,
+static const uint8_t pong[] = { 0, 1, IPAC_PROTO_IPACCESS, IPAC_MSGT_PONG };
+static const uint8_t id_ack[] = { 0, 1, IPAC_PROTO_IPACCESS, IPAC_MSGT_ID_ACK };
+static const uint8_t id_req[] = { 0, 17, IPAC_PROTO_IPACCESS, IPAC_MSGT_ID_GET,
 					0x01, IPAC_IDTAG_UNIT, 
 					0x01, IPAC_IDTAG_MACADDR,
 					0x01, IPAC_IDTAG_LOCATION1,
@@ -92,7 +92,7 @@
 int ipaccess_rcvmsg_base(struct msgb *msg,
 			 struct bsc_fd *bfd)
 {
-	u_int8_t msg_type = *(msg->l2h);
+	uint8_t msg_type = *(msg->l2h);
 	int ret = 0;
 
 	switch (msg_type) {
diff --git a/src/main.c b/src/main.c
index 7bba82e..cb78653 100644
--- a/src/main.c
+++ b/src/main.c
@@ -110,7 +110,7 @@
             "RSIP 1 13@mgw MGCP 1.0\r\n"
         };
 
-	mgcp_forward(bsc, (const u_int8_t *) mgcp_reset, strlen(mgcp_reset));
+	mgcp_forward(bsc, (const uint8_t *) mgcp_reset, strlen(mgcp_reset));
 }
 
 /*
@@ -663,7 +663,7 @@
 
 static void send_reset_ack(struct mtp_link *link, int sls)
 {
-	static const u_int8_t reset_ack[] = {
+	static const uint8_t reset_ack[] = {
 		0x09, 0x00, 0x03, 0x05, 0x7, 0x02, 0x42, 0xfe,
 		0x02, 0x42, 0xfe, 0x03,
 		0x00, 0x01, 0x31
@@ -675,7 +675,7 @@
 static void start_flood()
 {
 	static unsigned int i = 0;
-	static const u_int8_t paging_cmd[] = {
+	static const uint8_t paging_cmd[] = {
 		0x09, 0x00, 0x03,  0x07, 0x0b, 0x04, 0x43, 0x0a,
 		0x00, 0xfe, 0x04,  0x43, 0x5c, 0x00, 0xfe, 0x10,
 		0x00, 0x0e, 0x52,  0x08, 0x08, 0x29, 0x80, 0x10,
diff --git a/src/mgcp/mgcp_network.c b/src/mgcp/mgcp_network.c
index fbbfbf2..3a8381d 100644
--- a/src/mgcp/mgcp_network.c
+++ b/src/mgcp/mgcp_network.c
@@ -44,18 +44,18 @@
 /* according to rtp_proxy.c RFC 3550 */
 struct rtp_hdr {
 #if __BYTE_ORDER == __LITTLE_ENDIAN
-	u_int8_t  csrc_count:4,
+	uint8_t  csrc_count:4,
 		  extension:1,
 		  padding:1,
 		  version:2;
-	u_int8_t  payload_type:7,
+	uint8_t  payload_type:7,
 		  marker:1;
 #elif __BYTE_ORDER == __BIG_ENDIAN
-	u_int8_t  version:2,
+	uint8_t  version:2,
 		  padding:1,
 		  extension:1,
 		  csrc_count:4;
-	u_int8_t  marker:1,
+	uint8_t  marker:1,
 		  payload_type:7;
 #endif
 	u_int16_t sequence;
diff --git a/src/mgcp_ss7.c b/src/mgcp_ss7.c
index b273c31..cea6881 100644
--- a/src/mgcp_ss7.c
+++ b/src/mgcp_ss7.c
@@ -76,7 +76,7 @@
 };
 
 static void mgcp_ss7_endp_free(struct mgcp_ss7* ss7, int endp);
-static void mgcp_ss7_do_exec(struct mgcp_ss7 *mgcp, u_int8_t type, u_int32_t port, u_int32_t param);
+static void mgcp_ss7_do_exec(struct mgcp_ss7 *mgcp, uint8_t type, u_int32_t port, u_int32_t param);
 static void mgcp_mgw_vty_init();
 
 static void check_exit(int status)
@@ -371,7 +371,7 @@
 }
 #endif
 
-static void mgcp_ss7_do_exec(struct mgcp_ss7 *mgcp, u_int8_t type, u_int32_t port, u_int32_t param)
+static void mgcp_ss7_do_exec(struct mgcp_ss7 *mgcp, uint8_t type, u_int32_t port, u_int32_t param)
 {
 #ifndef NO_UNIPORTE
 	struct mgcp_ss7_endpoint *mgw_endp = &mgcp->mgw_end[port];
@@ -404,7 +404,7 @@
 #endif
 }
 
-void mgcp_ss7_exec(struct mgcp_ss7 *mgcp, u_int8_t type, u_int32_t port, u_int32_t param)
+void mgcp_ss7_exec(struct mgcp_ss7 *mgcp, uint8_t type, u_int32_t port, u_int32_t param)
 {
 	struct mgcp_ss7_cmd *cmd = malloc(sizeof(*cmd));
 	memset(cmd, 0, sizeof(*cmd));
diff --git a/src/msc_conn.c b/src/msc_conn.c
index 1e3357d..75b981b 100644
--- a/src/msc_conn.c
+++ b/src/msc_conn.c
@@ -204,7 +204,7 @@
 			/* we can not forward it right now */
 			if (link->sltm_pending) {
 				LOGP(DMSC, LOGL_NOTICE, "Queueing msg for pending SLTM.\n");
-				msg->l3h = (u_int8_t *) sls;
+				msg->l3h = (uint8_t *) sls;
 				msgb_enqueue(&link->pending_msgs, msg);
 				return 0;
 			}
@@ -430,7 +430,7 @@
 	return 0;
 }
 
-void mgcp_forward(struct bsc_data *bsc, const u_int8_t *data, unsigned int length)
+void mgcp_forward(struct bsc_data *bsc, const uint8_t *data, unsigned int length)
 {
 	struct msgb *mgcp;
 
@@ -569,7 +569,7 @@
 	msg = msgb_alloc_headroom(4096, 128, "id resp");
 	msg->l2h = msgb_v_put(msg, IPAC_MSGT_ID_RESP);
 	msgb_l16tv_put(msg, strlen(bsc->token) + 1,
-		       IPAC_IDTAG_UNITNAME, (u_int8_t *) bsc->token);
+		       IPAC_IDTAG_UNITNAME, (uint8_t *) bsc->token);
 
 	msc_send(bsc, msg, IPAC_PROTO_IPACCESS);
 }
diff --git a/src/mtp_layer3.c b/src/mtp_layer3.c
index ef067e5..446e0e9 100644
--- a/src/mtp_layer3.c
+++ b/src/mtp_layer3.c
@@ -50,11 +50,11 @@
 
 static struct msgb *mtp_create_sltm(struct mtp_link *link)
 {
-	const u_int8_t test_ptrn[14] = { 'G', 'S', 'M', 'M', 'M', 'S', };
+	const uint8_t test_ptrn[14] = { 'G', 'S', 'M', 'M', 'M', 'S', };
 	struct mtp_level_3_hdr *hdr;
 	struct mtp_level_3_mng *mng;
 	struct msgb *msg = mtp_msg_alloc(link);
-	u_int8_t *data;
+	uint8_t *data;
 	if (!msg)
 		return NULL;
 
@@ -140,7 +140,7 @@
 	struct sccp_data_unitdata *udt;
 	struct sccp_con_ctrl_prt_mgt *prt;
 	struct mtp_level_3_hdr *hdr;
-	u_int8_t *data;
+	uint8_t *data;
 
 
 	struct msgb *out = mtp_msg_alloc(link);
@@ -479,9 +479,9 @@
 	return rc;
 }
 
-int mtp_link_submit_sccp_data(struct mtp_link *link, int sls, const u_int8_t *data, unsigned int length)
+int mtp_link_submit_sccp_data(struct mtp_link *link, int sls, const uint8_t *data, unsigned int length)
 {
-	u_int8_t *put_ptr;
+	uint8_t *put_ptr;
 	struct mtp_level_3_hdr *hdr;
 	struct msgb *msg;
 
diff --git a/src/openbsc_nat/tlv_parser.c b/src/openbsc_nat/tlv_parser.c
index e44b3a1..9255fed 100644
--- a/src/openbsc_nat/tlv_parser.c
+++ b/src/openbsc_nat/tlv_parser.c
@@ -28,11 +28,11 @@
  *
  * Also, returns the number of bytes consumed by the TLV entry
  */
-int tlv_parse_one(u_int8_t *o_tag, u_int16_t *o_len, const u_int8_t **o_val,
+int tlv_parse_one(uint8_t *o_tag, u_int16_t *o_len, const uint8_t **o_val,
 		  const struct tlv_definition *def,
-		  const u_int8_t *buf, int buf_len)
+		  const uint8_t *buf, int buf_len)
 {
-	u_int8_t tag;
+	uint8_t tag;
 	int len;
 
 	tag = *buf;
@@ -103,8 +103,8 @@
  * lv_tag2: input: a second initial LV tag following lv_tag 
  */
 int tlv_parse(struct tlv_parsed *dec, const struct tlv_definition *def,
-	      const u_int8_t *buf, int buf_len, u_int8_t lv_tag,
-	      u_int8_t lv_tag2)
+	      const uint8_t *buf, int buf_len, uint8_t lv_tag,
+	      uint8_t lv_tag2)
 {
 	int ofs = 0, num_parsed = 0;
 	u_int16_t len;
@@ -136,8 +136,8 @@
 
 	while (ofs < buf_len) {
 		int rv;
-		u_int8_t tag;
-		const u_int8_t *val;
+		uint8_t tag;
+		const uint8_t *val;
 
 		rv = tlv_parse_one(&tag, &len, &val, def,
 		                   &buf[ofs], buf_len-ofs);
diff --git a/src/pcap.c b/src/pcap.c
index 549afa9..de6f77c 100644
--- a/src/pcap.c
+++ b/src/pcap.c
@@ -64,7 +64,7 @@
 	return write(fd, &hdr, sizeof(hdr));
 }
 
-int mtp_pcap_write_msu(int fd, const u_int8_t *data, int length)
+int mtp_pcap_write_msu(int fd, const uint8_t *data, int length)
 {
 	int rc_h, rc_d;
 	struct timeval tv;
