diff --git a/tests/Makefile.am b/tests/Makefile.am
index 6c392af..a23d931 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -63,7 +63,7 @@
 vty-transcript-test:
 	osmo_verify_transcript_vty.py -v \
 		-n OsmoSGSN -p 4245 \
-		-r "$(top_builddir)/src/gprs/osmo-sgsn -c $(top_srcdir)/doc/examples/osmo-sgsn/osmo-sgsn.cfg" \
+		-r "$(top_builddir)/src/sgsn/osmo-sgsn -c $(top_srcdir)/doc/examples/osmo-sgsn/osmo-sgsn.cfg" \
 		$(U) $${T:-$(srcdir)/*.vty}
 	rm -f $(builddir)/sms.db $(builddir)/gsn_restart
 
diff --git a/tests/ctrl_test_runner.py b/tests/ctrl_test_runner.py
index 57ef82e..9c253fc 100755
--- a/tests/ctrl_test_runner.py
+++ b/tests/ctrl_test_runner.py
@@ -145,11 +145,11 @@
 
 class TestCtrlSGSN(TestCtrlBase):
     def ctrl_command(self):
-        return ["./src/gprs/osmo-sgsn", "-c",
+        return ["./src/sgsn/osmo-sgsn", "-c",
                 "doc/examples/osmo-sgsn/osmo-sgsn.cfg"]
 
     def ctrl_app(self):
-        return (4251, "./src/gprs/osmo-sgsn", "OsmoSGSN", "sgsn")
+        return (4251, "./src/sgsn/osmo-sgsn", "OsmoSGSN", "sgsn")
 
     def testListSubscribers(self):
         # TODO. Add command to mark a subscriber as active
@@ -159,7 +159,7 @@
         self.assertEquals(r['value'], None)
 
 def add_sgsn_test(suite, workdir):
-    if not os.path.isfile(os.path.join(workdir, "src/gprs/osmo-sgsn")):
+    if not os.path.isfile(os.path.join(workdir, "src/sgsn/osmo-sgsn")):
         print("Skipping the SGSN test")
         return
     test = unittest.TestLoader().loadTestsFromTestCase(TestCtrlSGSN)
diff --git a/tests/sgsn/Makefile.am b/tests/sgsn/Makefile.am
index 47189e5..7ba70eb 100644
--- a/tests/sgsn/Makefile.am
+++ b/tests/sgsn/Makefile.am
@@ -42,31 +42,31 @@
 	$(NULL)
 
 sgsn_test_LDADD = \
-	$(top_builddir)/src/gprs/gprs_llc_parse.o \
-	$(top_builddir)/src/gprs/gprs_llc.o \
-	$(top_builddir)/src/gprs/crc24.o \
-	$(top_builddir)/src/gprs/gprs_gb.o \
-	$(top_builddir)/src/gprs/gprs_ranap.o \
-	$(top_builddir)/src/gprs/gprs_sndcp.o \
-	$(top_builddir)/src/gprs/gprs_gmm_attach.o \
-	$(top_builddir)/src/gprs/gprs_gmm.o \
-	$(top_builddir)/src/gprs/gprs_mm_state_gb_fsm.o \
-	$(top_builddir)/src/gprs/gprs_mm_state_iu_fsm.o \
-	$(top_builddir)/src/gprs/gprs_sgsn.o \
-	$(top_builddir)/src/gprs/sgsn_vty.o \
-	$(top_builddir)/src/gprs/sgsn_libgtp.o \
-	$(top_builddir)/src/gprs/sgsn_auth.o \
-	$(top_builddir)/src/gprs/sgsn_ares.o \
+	$(top_builddir)/src/sgsn/gprs_llc.o \
+	$(top_builddir)/src/sgsn/gprs_gb.o \
+	$(top_builddir)/src/sgsn/gprs_ranap.o \
+	$(top_builddir)/src/sgsn/gprs_sndcp.o \
+	$(top_builddir)/src/sgsn/gprs_gmm_attach.o \
+	$(top_builddir)/src/sgsn/gprs_gmm.o \
+	$(top_builddir)/src/sgsn/gprs_mm_state_gb_fsm.o \
+	$(top_builddir)/src/sgsn/gprs_mm_state_iu_fsm.o \
+	$(top_builddir)/src/sgsn/gprs_sgsn.o \
+	$(top_builddir)/src/sgsn/sgsn_vty.o \
+	$(top_builddir)/src/sgsn/sgsn_libgtp.o \
+	$(top_builddir)/src/sgsn/sgsn_auth.o \
+	$(top_builddir)/src/sgsn/gprs_subscriber.o \
+        $(top_builddir)/src/sgsn/gprs_llc_xid.o \
+	$(top_builddir)/src/sgsn/gprs_sndcp_xid.o \
+        $(top_builddir)/src/sgsn/slhc.o \
+        $(top_builddir)/src/sgsn/gprs_sndcp_comp.o \
+        $(top_builddir)/src/sgsn/gprs_sndcp_pcomp.o \
+        $(top_builddir)/src/sgsn/v42bis.o \
+        $(top_builddir)/src/sgsn/gprs_sndcp_dcomp.o \
 	$(top_builddir)/src/gprs/gprs_utils.o \
-	$(top_builddir)/src/gprs/gprs_subscriber.o \
+	$(top_builddir)/src/gprs/gprs_llc_parse.o \
 	$(top_builddir)/src/gprs/gprs_gb_parse.o \
-        $(top_builddir)/src/gprs/gprs_llc_xid.o \
-	$(top_builddir)/src/gprs/gprs_sndcp_xid.o \
-        $(top_builddir)/src/gprs/slhc.o \
-        $(top_builddir)/src/gprs/gprs_sndcp_comp.o \
-        $(top_builddir)/src/gprs/gprs_sndcp_pcomp.o \
-        $(top_builddir)/src/gprs/v42bis.o \
-        $(top_builddir)/src/gprs/gprs_sndcp_dcomp.o \
+	$(top_builddir)/src/gprs/crc24.o \
+	$(top_builddir)/src/gprs/sgsn_ares.o \
 	$(LIBOSMOABIS_LIBS) \
 	$(LIBOSMOCORE_LIBS) \
 	$(LIBOSMOGSM_LIBS) \
diff --git a/tests/slhc/Makefile.am b/tests/slhc/Makefile.am
index 818ae2e..b6738c2 100644
--- a/tests/slhc/Makefile.am
+++ b/tests/slhc/Makefile.am
@@ -8,7 +8,7 @@
 slhc_test_SOURCES = slhc_test.c
 
 slhc_test_LDADD = \
-	$(top_builddir)/src/gprs/slhc.o \
+	$(top_builddir)/src/sgsn/slhc.o \
 	$(LIBOSMOCORE_LIBS)
 
 
diff --git a/tests/sndcp_xid/Makefile.am b/tests/sndcp_xid/Makefile.am
index fbcb36c..24626b3 100644
--- a/tests/sndcp_xid/Makefile.am
+++ b/tests/sndcp_xid/Makefile.am
@@ -8,7 +8,7 @@
 sndcp_xid_test_SOURCES = sndcp_xid_test.c
 
 sndcp_xid_test_LDADD = \
-	$(top_builddir)/src/gprs/gprs_sndcp_xid.o \
+	$(top_builddir)/src/sgsn/gprs_sndcp_xid.o \
 	$(LIBOSMOABIS_LIBS) \
 	$(LIBOSMOCORE_LIBS) \
 	$(LIBOSMOGSM_LIBS) \
diff --git a/tests/v42bis/Makefile.am b/tests/v42bis/Makefile.am
index 8e17b4a..7442392 100644
--- a/tests/v42bis/Makefile.am
+++ b/tests/v42bis/Makefile.am
@@ -8,7 +8,7 @@
 v42bis_test_SOURCES = v42bis_test.c
 
 v42bis_test_LDADD = \
-	$(top_builddir)/src/gprs/v42bis.o \
+	$(top_builddir)/src/sgsn/v42bis.o \
 	$(LIBOSMOCORE_LIBS)
 
 
diff --git a/tests/vty_test_runner.py b/tests/vty_test_runner.py
index a71865d..a925b6b 100755
--- a/tests/vty_test_runner.py
+++ b/tests/vty_test_runner.py
@@ -119,11 +119,11 @@
 class TestVTYSGSN(TestVTYBase):
 
     def vty_command(self):
-        return ["./src/gprs/osmo-sgsn", "-c",
+        return ["./src/sgsn/osmo-sgsn", "-c",
                 "doc/examples/osmo-sgsn/osmo-sgsn-accept-all.cfg"]
 
     def vty_app(self):
-        return (4245, "./src/gprs/osmo-sgsn", "OsmoSGSN", "sgsn")
+        return (4245, "./src/sgsn/osmo-sgsn", "OsmoSGSN", "sgsn")
 
     def testVtyTree(self):
         self.vty.enable()
@@ -284,7 +284,7 @@
     suite.addTest(test)
 
 def add_sgsn_test(suite, workdir):
-    if not os.path.isfile(os.path.join(workdir, "src/gprs/osmo-sgsn")):
+    if not os.path.isfile(os.path.join(workdir, "src/sgsn/osmo-sgsn")):
         print("Skipping the SGSN test")
         return
     test = unittest.TestLoader().loadTestsFromTestCase(TestVTYSGSN)
diff --git a/tests/xid/Makefile.am b/tests/xid/Makefile.am
index 92876ec..6f058f5 100644
--- a/tests/xid/Makefile.am
+++ b/tests/xid/Makefile.am
@@ -24,7 +24,7 @@
 	$(NULL)
 
 xid_test_LDADD = \
-	$(top_builddir)/src/gprs/gprs_llc_xid.o \
+	$(top_builddir)/src/sgsn/gprs_llc_xid.o \
 	$(LIBOSMOABIS_LIBS) \
 	$(LIBOSMOCORE_LIBS) \
 	$(LIBOSMOGSM_LIBS) \
