diff --git a/openbsc/src/nat/bsc_mgcp_utils.c b/openbsc/src/nat/bsc_mgcp_utils.c
index 4983c35..567c325 100644
--- a/openbsc/src/nat/bsc_mgcp_utils.c
+++ b/openbsc/src/nat/bsc_mgcp_utils.c
@@ -274,30 +274,30 @@
 static void free_chan_downstream(struct mgcp_endpoint *endp, struct bsc_endpoint *bsc_endp,
 				 struct bsc_connection *bsc)
 {
-		LOGP(DMGCP, LOGL_ERROR, "No CI, freeing endpoint 0x%x in state %d\n",
-			ENDPOINT_NUMBER(endp), bsc_endp->transaction_state);
+	LOGP(DMGCP, LOGL_ERROR, "No CI, freeing endpoint 0x%x in state %d\n",
+		ENDPOINT_NUMBER(endp), bsc_endp->transaction_state);
 
-		/* if a CRCX failed... send a DLCX down the stream */
-		if (bsc_endp->transaction_state == MGCP_ENDP_CRCX) {
-			struct sccp_connections *con;
-			con = bsc_mgcp_find_con(bsc->nat, ENDPOINT_NUMBER(endp));
-			if (!con) {
-				LOGP(DMGCP, LOGL_ERROR,
-					"No SCCP connection for endp 0x%x\n",
-					ENDPOINT_NUMBER(endp));
+	/* if a CRCX failed... send a DLCX down the stream */
+	if (bsc_endp->transaction_state == MGCP_ENDP_CRCX) {
+		struct sccp_connections *con;
+		con = bsc_mgcp_find_con(bsc->nat, ENDPOINT_NUMBER(endp));
+		if (!con) {
+			LOGP(DMGCP, LOGL_ERROR,
+				"No SCCP connection for endp 0x%x\n",
+				ENDPOINT_NUMBER(endp));
+		} else {
+			if (con->bsc == bsc) {
+				bsc_mgcp_send_dlcx(bsc, ENDPOINT_NUMBER(endp));
+				con->crcx = 0;
 			} else {
-				if (con->bsc == bsc) {
-					bsc_mgcp_send_dlcx(bsc, ENDPOINT_NUMBER(endp));
-					con->crcx = 0;
-				} else {
-					LOGP(DMGCP, LOGL_ERROR,
-						"Endpoint belongs to a different BSC\n");
-				}
+				LOGP(DMGCP, LOGL_ERROR,
+					"Endpoint belongs to a different BSC\n");
 			}
 		}
+	}
 
-		bsc_mgcp_free_endpoint(bsc->nat, ENDPOINT_NUMBER(endp));
-		mgcp_free_endp(endp);
+	bsc_mgcp_free_endpoint(bsc->nat, ENDPOINT_NUMBER(endp));
+	mgcp_free_endp(endp);
 }
 
 /*
