diff --git a/openbsc/src/bsc/osmo_bsc_main.c b/openbsc/src/bsc/osmo_bsc_main.c
index a6097db..bcc077a 100644
--- a/openbsc/src/bsc/osmo_bsc_main.c
+++ b/openbsc/src/bsc/osmo_bsc_main.c
@@ -74,7 +74,7 @@
 	printf("  -t --testmode. A special mode to provoke failures at the MSC.\n");
 }
 
-static void handle_options(int argc, char** argv)
+static void handle_options(int argc, char **argv)
 {
 	while (1) {
 		int option_index = 0, c;
diff --git a/openbsc/src/bsc_api.c b/openbsc/src/bsc_api.c
index ba6dd88..c478142 100644
--- a/openbsc/src/bsc_api.c
+++ b/openbsc/src/bsc_api.c
@@ -187,7 +187,7 @@
 /*
  * Release all occupied RF Channels but stay around for more.
  */
-int gsm0808_clear(struct gsm_subscriber_connection* conn)
+int gsm0808_clear(struct gsm_subscriber_connection *conn)
 {
 	if (conn->ho_lchan)
 		bsc_clear_handover(conn);
diff --git a/openbsc/src/bsc_hack.c b/openbsc/src/bsc_hack.c
index 61b7947..4efc782 100644
--- a/openbsc/src/bsc_hack.c
+++ b/openbsc/src/bsc_hack.c
@@ -93,7 +93,7 @@
 	printf("  -e --log-level number. Set a global loglevel.\n");
 }
 
-static void handle_options(int argc, char** argv)
+static void handle_options(int argc, char **argv)
 {
 	while (1) {
 		int option_index = 0, c;
diff --git a/openbsc/src/db.c b/openbsc/src/db.c
index 6984b30..05687d7 100644
--- a/openbsc/src/db.c
+++ b/openbsc/src/db.c
@@ -736,7 +736,7 @@
 {
 	dbi_result result = NULL;
 	char tmsi[14];
-	char* tmsi_quoted;
+	char *tmsi_quoted;
 
 	for (;;) {
 		subscriber->tmsi = rand();
diff --git a/openbsc/src/gsm_04_08.c b/openbsc/src/gsm_04_08.c
index b451be7..dcbf168 100644
--- a/openbsc/src/gsm_04_08.c
+++ b/openbsc/src/gsm_04_08.c
@@ -303,7 +303,7 @@
 	return 0;
 }
 
-void gsm0408_clear_request(struct gsm_subscriber_connection* conn, uint32_t cause)
+void gsm0408_clear_request(struct gsm_subscriber_connection *conn, uint32_t cause)
 {
 	struct gsm_trans *trans, *temp;
 
diff --git a/openbsc/src/mgcp/mgcp_main.c b/openbsc/src/mgcp/mgcp_main.c
index d1e22ea..e331159 100644
--- a/openbsc/src/mgcp/mgcp_main.c
+++ b/openbsc/src/mgcp/mgcp_main.c
@@ -80,7 +80,7 @@
 	printf(" -c --config-file filename The config file to use.\n");
 }
 
-static void handle_options(int argc, char** argv)
+static void handle_options(int argc, char **argv)
 {
 	while (1) {
 		int option_index = 0, c;
@@ -189,7 +189,7 @@
 	.is_config_node	= bsc_vty_is_config_node,
 };
 
-int main(int argc, char** argv)
+int main(int argc, char **argv)
 {
 	struct gsm_network dummy_network;
 	struct sockaddr_in addr;
diff --git a/openbsc/src/mgcp/mgcp_protocol.c b/openbsc/src/mgcp/mgcp_protocol.c
index 33d6c63..1ec9201 100644
--- a/openbsc/src/mgcp/mgcp_protocol.c
+++ b/openbsc/src/mgcp/mgcp_protocol.c
@@ -353,7 +353,7 @@
 	return create_response(response, "AUEP", trans_id);
 }
 
-static int parse_conn_mode(const char* msg, int *conn_mode)
+static int parse_conn_mode(const char *msg, int *conn_mode)
 {
 	int ret = 0;
 	if (strcmp(msg, "recvonly") == 0)
diff --git a/openbsc/src/nat/bsc_filter.c b/openbsc/src/nat/bsc_filter.c
index 233f515..e968fa2 100644
--- a/openbsc/src/nat/bsc_filter.c
+++ b/openbsc/src/nat/bsc_filter.c
@@ -73,7 +73,7 @@
 	{ NAT_IPAC_PROTO_MGCP, ALLOW_ANY, ALLOW_ANY, ALLOW_ANY, FILTER_TO_BOTH },
 };
 
-struct bsc_nat_parsed* bsc_nat_parse(struct msgb *msg)
+struct bsc_nat_parsed *bsc_nat_parse(struct msgb *msg)
 {
 	struct sccp_parse_result result;
 	struct bsc_nat_parsed *parsed;
diff --git a/openbsc/src/nat/bsc_nat.c b/openbsc/src/nat/bsc_nat.c
index 23b8111..2c08518 100644
--- a/openbsc/src/nat/bsc_nat.c
+++ b/openbsc/src/nat/bsc_nat.c
@@ -709,7 +709,7 @@
 static void ipaccess_auth_bsc(struct tlv_parsed *tvp, struct bsc_connection *bsc)
 {
 	struct bsc_config *conf;
-	const char* token = (const char *) TLVP_VAL(tvp, IPAC_IDTAG_UNITNAME);
+	const char *token = (const char *) TLVP_VAL(tvp, IPAC_IDTAG_UNITNAME);
 
 	if (bsc->cfg) {
 		LOGP(DNAT, LOGL_ERROR, "Reauth on fd %d bsc nr %d\n",
@@ -1075,7 +1075,7 @@
 	printf("  -l --local=IP. The local address of this BSC.\n");
 }
 
-static void handle_options(int argc, char** argv)
+static void handle_options(int argc, char **argv)
 {
 	while (1) {
 		int option_index = 0, c;
@@ -1180,7 +1180,7 @@
 	.is_config_node	= bsc_vty_is_config_node,
 };
 
-int main(int argc, char** argv)
+int main(int argc, char **argv)
 {
 	int rc;
 
diff --git a/openbsc/src/osmo_msc.c b/openbsc/src/osmo_msc.c
index 97f36f5..d129e53 100644
--- a/openbsc/src/osmo_msc.c
+++ b/openbsc/src/osmo_msc.c
@@ -28,7 +28,7 @@
 
 #include <openbsc/gsm_04_11.h>
 
-static void msc_sapi_n_reject(struct gsm_subscriber_connection* conn, int dlci)
+static void msc_sapi_n_reject(struct gsm_subscriber_connection *conn, int dlci)
 {
 	int sapi = dlci & 0x7;
 
@@ -36,7 +36,7 @@
 		gsm411_sapi_n_reject(conn);
 }
 
-static void msc_clear_request(struct gsm_subscriber_connection* conn, uint32_t cause)
+static void msc_clear_request(struct gsm_subscriber_connection *conn, uint32_t cause)
 {
 	gsm0408_clear_request(conn, cause);
 }
