diff --git a/openbsc/src/gprs/gprs_subscriber.c b/openbsc/src/gprs/gprs_subscriber.c
index 2460340..8486834 100644
--- a/openbsc/src/gprs/gprs_subscriber.c
+++ b/openbsc/src/gprs/gprs_subscriber.c
@@ -82,22 +82,6 @@
 	return rc;
 }
 
-static int check_blocking(
-	struct gsm_subscriber *subscr,
-	enum sgsn_subscriber_proc what)
-{
-	if (subscr->sgsn_data->blocked_by == SGSN_SUBSCR_PROC_NONE ||
-	    subscr->sgsn_data->blocked_by == what)
-		return 1;
-
-	return 0;
-}
-
-static void abort_blocking_procedure(struct gsm_subscriber *subscr)
-{
-	/* reset something */
-}
-
 int gprs_subscr_purge(struct gsm_subscriber *subscr);
 
 static struct sgsn_subscriber_data *sgsn_subscriber_data_alloc(void *ctx)
@@ -659,42 +643,17 @@
 int gprs_subscr_purge(struct gsm_subscriber *subscr)
 {
 	struct gprs_gsup_message gsup_msg = {0};
-	int rc;
-
-	if (!check_blocking(subscr, SGSN_SUBSCR_PROC_PURGE)) {
-		LOGGSUBSCRP(
-			LOGL_NOTICE, subscr,
-			"Cannot purge MS subscriber, blocked\n");
-		return -EAGAIN;
-	}
-
-	/* GSM 09.02, 19.4.1.4 requires other MAP requests to be blocked until
-	 * this procedure is completed
-	 */
-	subscr->sgsn_data->blocked_by = SGSN_SUBSCR_PROC_PURGE;
 
 	LOGGSUBSCRP(LOGL_INFO, subscr, "purging MS subscriber\n");
 
 	gsup_msg.message_type = GPRS_GSUP_MSGT_PURGE_MS_REQUEST;
-	rc = gprs_subscr_tx_gsup_message(subscr, &gsup_msg);
-	if (rc < 0)
-		subscr->sgsn_data->blocked_by = SGSN_SUBSCR_PROC_NONE;
-
-	return rc;
+	return gprs_subscr_tx_gsup_message(subscr, &gsup_msg);
 }
 
 int gprs_subscr_query_auth_info(struct gsm_subscriber *subscr)
 {
 	struct gprs_gsup_message gsup_msg = {0};
 
-	if (!check_blocking(subscr, SGSN_SUBSCR_PROC_UPD_AUTH)) {
-		LOGGSUBSCRP(
-			LOGL_NOTICE, subscr,
-			"Cannot start update auth info request procedure, blocked\n");
-		abort_blocking_procedure(subscr);
-		return -EAGAIN;
-	}
-
 	LOGGSUBSCRP(LOGL_INFO, subscr,
 		"subscriber auth info is not available\n");
 
@@ -706,14 +665,6 @@
 {
 	struct gprs_gsup_message gsup_msg = {0};
 
-	if (!check_blocking(subscr, SGSN_SUBSCR_PROC_UPD_LOC)) {
-		LOGGSUBSCRP(
-			LOGL_NOTICE, subscr,
-			"Cannot start update location procedure, blocked\n");
-		abort_blocking_procedure(subscr);
-		return -EAGAIN;
-	}
-
 	LOGGSUBSCRP(LOGL_INFO, subscr,
 		"subscriber data is not available\n");
 
