diff --git a/openbsc/.gitignore b/openbsc/.gitignore
index 21b66a1..c08495f 100644
--- a/openbsc/.gitignore
+++ b/openbsc/.gitignore
@@ -69,6 +69,7 @@
 tests/trau/trau_test
 tests/mgcp/mgcp_transcoding_test
 tests/sgsn/sgsn_test
+tests/subscr/subscr_test
 
 tests/atconfig
 tests/atlocal
diff --git a/openbsc/configure.ac b/openbsc/configure.ac
index 5e705c7..69be8b6 100644
--- a/openbsc/configure.ac
+++ b/openbsc/configure.ac
@@ -192,6 +192,7 @@
     tests/smpp/Makefile
     tests/trau/Makefile
     tests/sgsn/Makefile
+    tests/subscr/Makefile
     doc/Makefile
     doc/examples/Makefile
     Makefile)
diff --git a/openbsc/tests/Makefile.am b/openbsc/tests/Makefile.am
index 273c84f..773830b 100644
--- a/openbsc/tests/Makefile.am
+++ b/openbsc/tests/Makefile.am
@@ -1,4 +1,4 @@
-SUBDIRS = gsm0408 db channel mgcp gprs abis gbproxy trau
+SUBDIRS = gsm0408 db channel mgcp gprs abis gbproxy trau subscr
 
 if BUILD_NAT
 SUBDIRS += bsc-nat bsc-nat-trie
diff --git a/openbsc/tests/subscr/Makefile.am b/openbsc/tests/subscr/Makefile.am
new file mode 100644
index 0000000..4f96dc9
--- /dev/null
+++ b/openbsc/tests/subscr/Makefile.am
@@ -0,0 +1,18 @@
+AM_CPPFLAGS = $(all_includes) -I$(top_srcdir)/include
+AM_CFLAGS=-Wall -ggdb3 $(LIBOSMOCORE_CFLAGS) $(LIBOSMOGSM_CFLAGS) $(LIBOSMOABIS_CFLAGS) $(LIBSMPP34_CFLAGS) $(COVERAGE_CFLAGS)
+AM_LDFLAGS = $(COVERAGE_LDFLAGS)
+
+EXTRA_DIST = subscr_test.ok
+
+noinst_PROGRAMS = subscr_test
+
+subscr_test_SOURCES = subscr_test.c
+subscr_test_LDADD   =	$(top_builddir)/src/libbsc/libbsc.a \
+			$(top_builddir)/src/libmsc/libmsc.a \
+			$(top_builddir)/src/libbsc/libbsc.a \
+			$(top_builddir)/src/libtrau/libtrau.a \
+			$(top_builddir)/src/libcommon/libcommon.a \
+			$(LIBOSMOCORE_LIBS) $(LIBOSMOABIS_LIBS) \
+			$(LIBOSMOGSM_LIBS) $(LIBSMPP34_LIBS) $(LIBOSMOVTY_LIBS)
+# -ldbi
+
diff --git a/openbsc/tests/subscr/subscr_test.c b/openbsc/tests/subscr/subscr_test.c
new file mode 100644
index 0000000..fdd5cd8
--- /dev/null
+++ b/openbsc/tests/subscr/subscr_test.c
@@ -0,0 +1,104 @@
+/* (C) 2008 by Jan Luebbe <jluebbe@debian.org>
+ * (C) 2009 by Holger Hans Peter Freyther <zecke@selfish.org>
+ * (C) 2014 by Alexander Chemeris <Alexander.Chemeris@fairwaves.co>
+ * All Rights Reserved
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+#include <openbsc/debug.h>
+#include <openbsc/db.h>
+#include <openbsc/gsm_subscriber.h>
+#include <openbsc/gsm_04_11.h>
+
+#include <osmocom/core/application.h>
+
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+#include <inttypes.h>
+
+static struct gsm_network dummy_net;
+static struct gsm_subscriber_group dummy_sgrp;
+
+static void test_subscr(void)
+{
+	int rc;
+	struct gsm_subscriber *subscr;
+	const char *imsi = "1234567890";
+
+	printf("Test subscriber allocation and deletion\n");
+
+	/* Don't keep subscr */
+
+	dummy_sgrp.keep_subscr = 0;
+
+	OSMO_ASSERT(llist_empty(&active_subscribers));
+
+	subscr = subscr_get_or_create(&dummy_sgrp, imsi);
+
+	OSMO_ASSERT(!llist_empty(&active_subscribers));
+	OSMO_ASSERT(subscr->use_count == 1);
+
+	subscr_put(subscr);
+
+	OSMO_ASSERT(llist_empty(&active_subscribers));
+
+	/* Keep subscr */
+
+	dummy_sgrp.keep_subscr = 1;
+
+	subscr = subscr_get_or_create(&dummy_sgrp, imsi);
+
+	OSMO_ASSERT(!llist_empty(&active_subscribers));
+	OSMO_ASSERT(subscr->use_count == 1);
+
+	subscr_put(subscr);
+	OSMO_ASSERT(!llist_empty(&active_subscribers));
+	OSMO_ASSERT(subscr->use_count == 0);
+
+	subscr_get(subscr);
+	OSMO_ASSERT(subscr->use_count == 1);
+
+	subscr_purge_inactive(&dummy_sgrp);
+
+	OSMO_ASSERT(!llist_empty(&active_subscribers));
+	OSMO_ASSERT(subscr->use_count == 1);
+
+	subscr_put(subscr);
+	OSMO_ASSERT(!llist_empty(&active_subscribers));
+	OSMO_ASSERT(subscr->use_count == 0);
+
+	subscr_purge_inactive(&dummy_sgrp);
+
+	OSMO_ASSERT(llist_empty(&active_subscribers));
+}
+
+int main()
+{
+	char scratch_str[256];
+
+	printf("Testing subscriber core code.\n");
+	osmo_init_logging(&log_info);
+	log_set_print_filename(osmo_stderr_target, 0);
+
+	dummy_net.subscr_group = &dummy_sgrp;
+	dummy_sgrp.net         = &dummy_net;
+
+	test_subscr();
+
+	printf("Done\n");
+	return 0;
+}
diff --git a/openbsc/tests/subscr/subscr_test.ok b/openbsc/tests/subscr/subscr_test.ok
new file mode 100644
index 0000000..72a3769
--- /dev/null
+++ b/openbsc/tests/subscr/subscr_test.ok
@@ -0,0 +1,3 @@
+Testing subscriber core code.
+Test subscriber allocation and deletion
+Done
diff --git a/openbsc/tests/testsuite.at b/openbsc/tests/testsuite.at
index ee62fa9..74aaef0 100644
--- a/openbsc/tests/testsuite.at
+++ b/openbsc/tests/testsuite.at
@@ -7,6 +7,12 @@
 AT_CHECK([$abs_top_builddir/tests/gsm0408/gsm0408_test], [], [expout], [ignore])
 AT_CLEANUP
 
+AT_SETUP([subscr])
+AT_KEYWORDS([subscr])
+cat $abs_srcdir/subscr/subscr_test.ok > expout
+AT_CHECK([$abs_top_builddir/tests/subscr/subscr_test], [], [expout], [ignore])
+AT_CLEANUP
+
 AT_SETUP([db])
 AT_KEYWORDS([db])
 cat $abs_srcdir/db/db_test.ok > expout
