diff --git a/openbsc/src/gprs/gprs_llc.c b/openbsc/src/gprs/gprs_llc.c
index ff771b8..5b1f333 100644
--- a/openbsc/src/gprs/gprs_llc.c
+++ b/openbsc/src/gprs/gprs_llc.c
@@ -1066,7 +1066,7 @@
 	/* Generate XID message */
 	xid_bytes_len = gprs_llc_generate_xid_for_gmm_reset(xid_bytes,
 					sizeof(xid_bytes),llme->iov_ui,llme);
-	if(xid_bytes_len < 0)
+	if (xid_bytes_len < 0)
 		return -EINVAL;
 	xid = msgb_put(msg, xid_bytes_len);
 	memcpy(xid, xid_bytes, xid_bytes_len);
@@ -1099,7 +1099,7 @@
 	/* Generate XID message */
 	xid_bytes_len = gprs_llc_generate_xid_for_gmm_reset(xid_bytes,
 					sizeof(xid_bytes),llme->iov_ui,llme);
-	if(xid_bytes_len < 0)
+	if (xid_bytes_len < 0)
 		return -EINVAL;
 	xid = msgb_put(msg, xid_bytes_len);
 	memcpy(xid, xid_bytes, xid_bytes_len);
diff --git a/openbsc/src/gprs/gprs_sndcp.c b/openbsc/src/gprs/gprs_sndcp.c
index 0b18f81..1cbeede 100644
--- a/openbsc/src/gprs/gprs_sndcp.c
+++ b/openbsc/src/gprs/gprs_sndcp.c
@@ -779,7 +779,7 @@
 	/* FIXME: move this RA_ID up to the LLME or even higher */
 	bssgp_parse_cell_id(&sne->ra_id, msgb_bcid(msg));
 
-	if(scomph) {
+	if (scomph) {
 		sne->defrag.pcomp = scomph->pcomp;
 		sne->defrag.dcomp = scomph->dcomp;
 		sne->defrag.proto = lle->llme->comp.proto;
diff --git a/openbsc/src/gprs/sgsn_libgtp.c b/openbsc/src/gprs/sgsn_libgtp.c
index 9f65325..127ee30 100644
--- a/openbsc/src/gprs/sgsn_libgtp.c
+++ b/openbsc/src/gprs/sgsn_libgtp.c
@@ -328,13 +328,13 @@
 
 	/* Send PDP CTX ACT to MS */
 	rc = gsm48_tx_gsm_act_pdp_acc(pctx);
-	if(rc < 0)
+	if (rc < 0)
 		return rc;
 
 	/* Send SNDCP XID to MS */
 	lle = &pctx->mm->gb.llme->lle[pctx->sapi];
 	rc = sndcp_sn_xid_req(lle,pctx->nsapi);
-	if(rc < 0)
+	if (rc < 0)
 		return rc;
 
 	return 0;
diff --git a/openbsc/src/libmgcp/mgcp_protocol.c b/openbsc/src/libmgcp/mgcp_protocol.c
index ff0fc3e..2e728cb 100644
--- a/openbsc/src/libmgcp/mgcp_protocol.c
+++ b/openbsc/src/libmgcp/mgcp_protocol.c
@@ -818,7 +818,7 @@
 	if (osmux_cid >= 0) {
 		endp->osmux.cid = osmux_cid;
 		endp->osmux.state = OSMUX_STATE_NEGOTIATING;
-	} else if(endp->cfg->osmux == OSMUX_USAGE_ONLY) {
+	} else if (endp->cfg->osmux == OSMUX_USAGE_ONLY) {
 		LOGP(DMGCP, LOGL_ERROR,
 			"Osmux only and no osmux offered on 0x%x\n", ENDPOINT_NUMBER(endp));
 		goto error2;
diff --git a/openbsc/src/osmo-bsc/osmo_bsc_sccp.c b/openbsc/src/osmo-bsc/osmo_bsc_sccp.c
index 33c737f..86b27be 100644
--- a/openbsc/src/osmo-bsc/osmo_bsc_sccp.c
+++ b/openbsc/src/osmo-bsc/osmo_bsc_sccp.c
@@ -80,7 +80,7 @@
 
 	if (conn->connection_state >= SCCP_CONNECTION_STATE_RELEASE_COMPLETE) {
 		con_data = (struct osmo_bsc_sccp_con *) conn->data_ctx;
-		if(con_data->conn) {
+		if (con_data->conn) {
 			LOGP(DMSC, LOGL_ERROR,
 				"ERROR: The lchan is still associated.\n");
 			gsm0808_clear(con_data->conn);
