diff --git a/LCS/PyCommon/util.py b/LCS/PyCommon/util.py
index cef4cda88c4082e34e5c74afccc88bb390cfdd43..8ddd6531dace52f62e9c1419fbaecc8a6fdc71fb 100644
--- a/LCS/PyCommon/util.py
+++ b/LCS/PyCommon/util.py
@@ -194,12 +194,19 @@ def single_line_with_single_spaces(lines: str) -> str:
             return line
         length = new_length
 
-def find_free_port():
-    '''find and return a random free network port'''
+def find_free_port(preferred_port: int=0):
+    '''find and return a random free network port, preferably the given <preferred_port>'''
     import socket
     from contextlib import closing
 
     with closing(socket.socket(socket.AF_INET, socket.SOCK_STREAM)) as s:
-        s.bind(('', 0))
+        try:
+            s.bind(('', preferred_port))
+        except OSError as e:
+            if e.errno==98: # OSError: [Errno 98] Address already in use
+                s.bind(('', 0))
+            else:
+                raise
+
         s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
         return s.getsockname()[1]
diff --git a/SAS/TMSS/test/test_utils.py b/SAS/TMSS/test/test_utils.py
index 79cf57cfccebc8a904819dc99f8f8d780ef998bf..d64d416d2582f599099658dfbbf659ab1820d7f8 100644
--- a/SAS/TMSS/test/test_utils.py
+++ b/SAS/TMSS/test/test_utils.py
@@ -233,7 +233,7 @@ class TMSSTestEnvironment:
         self.database = TMSSTestDatabaseInstance()
         self.django_server = TMSSDjangoServerInstance(db_dbcreds_id=self.database.dbcreds_id,
                                                       ldap_dbcreds_id=self.ldap_server.dbcreds_id,
-                                                      port=find_free_port())
+                                                      port=find_free_port(8000))
 
     def start(self):
         self.ldap_server.start()