diff --git a/openbsc/src/osmo-bsc_nat/bsc_nat_utils.c b/openbsc/src/osmo-bsc_nat/bsc_nat_utils.c
index 84b23d1..0eb8be9 100644
--- a/openbsc/src/osmo-bsc_nat/bsc_nat_utils.c
+++ b/openbsc/src/osmo-bsc_nat/bsc_nat_utils.c
@@ -672,31 +672,6 @@
 	}
 }
 
-int bsc_parse_reg(void *ctx, regex_t *reg, char **imsi, int argc, const char **argv)
-{
-	int ret;
-
-	ret = 0;
-	if (*imsi) {
-		talloc_free(*imsi);
-		*imsi = NULL;
-	}
-	regfree(reg);
-
-	if (argc > 0) {
-		*imsi = talloc_strdup(ctx, argv[0]);
-		ret = regcomp(reg, argv[0], 0);
-
-		/* handle compilation failures */
-		if (ret != 0) {
-			talloc_free(*imsi);
-			*imsi = NULL;
-		}
-	}
-
-	return ret;
-}
-
 static const char *con_types [] = {
 	[NAT_CON_TYPE_NONE] = "n/a",
 	[NAT_CON_TYPE_LU] = "Location Update",
diff --git a/openbsc/src/osmo-bsc_nat/bsc_nat_vty.c b/openbsc/src/osmo-bsc_nat/bsc_nat_vty.c
index b5c1cf2..55b3958 100644
--- a/openbsc/src/osmo-bsc_nat/bsc_nat_vty.c
+++ b/openbsc/src/osmo-bsc_nat/bsc_nat_vty.c
@@ -19,6 +19,7 @@
  */
 
 #include <openbsc/vty.h>
+#include <openbsc/gsm_data.h>
 #include <openbsc/bsc_nat.h>
 #include <openbsc/bsc_nat_sccp.h>
 #include <openbsc/bsc_msc.h>
@@ -527,7 +528,7 @@
       "Set the USSD query to match with the ussd-list-name\n"
       "The query to match")
 {
-	if (bsc_parse_reg(_nat, &_nat->ussd_query_re, &_nat->ussd_query, argc, argv) != 0)
+	if (gsm_parse_reg(_nat, &_nat->ussd_query_re, &_nat->ussd_query, argc, argv) != 0)
 		return CMD_WARNING;
 	return CMD_SUCCESS;
 }
@@ -641,7 +642,7 @@
 	if (!entry)
 		return CMD_WARNING;
 
-	if (bsc_parse_reg(acc, &entry->imsi_allow_re, &entry->imsi_allow, argc - 1, &argv[1]) != 0)
+	if (gsm_parse_reg(acc, &entry->imsi_allow_re, &entry->imsi_allow, argc - 1, &argv[1]) != 0)
 		return CMD_WARNING;
 	return CMD_SUCCESS;
 }
@@ -664,7 +665,7 @@
 	if (!entry)
 		return CMD_WARNING;
 
-	if (bsc_parse_reg(acc, &entry->imsi_deny_re, &entry->imsi_deny, argc - 1, &argv[1]) != 0)
+	if (gsm_parse_reg(acc, &entry->imsi_deny_re, &entry->imsi_deny, argc - 1, &argv[1]) != 0)
 		return CMD_WARNING;
 	return CMD_SUCCESS;
 }
@@ -797,7 +798,7 @@
 	char *str = NULL;
 
 	memset(&reg, 0, sizeof(reg));
-	if (bsc_parse_reg(_nat, &reg, &str, 1, argv) != 0)
+	if (gsm_parse_reg(_nat, &reg, &str, 1, argv) != 0)
 		return CMD_WARNING;
 
 	vty_out(vty, "String matches allow pattern: %d%s",
