diff --git a/src/osmo_gsm_tester/bts_octphy.py b/src/osmo_gsm_tester/bts_octphy.py
index eb1092c..bc93a3a 100644
--- a/src/osmo_gsm_tester/bts_octphy.py
+++ b/src/osmo_gsm_tester/bts_octphy.py
@@ -31,6 +31,7 @@
     pcu_sk_tmp_dir = None
     values = None
     lac = None
+    cellid = None
 
     BIN_BTS_OCTPHY = 'osmo-bts-octphy'
 
@@ -161,6 +162,8 @@
         config.overlay(values, config.get_defaults('osmo_bts_octphy'))
         if self.lac is not None:
             config.overlay(values, { 'location_area_code': self.lac })
+        if self.cellid is not None:
+            config.overlay(values, { 'cell_identity': self.cellid })
         config.overlay(values, self.conf)
         self.dbg(conf=values)
         return values
@@ -171,4 +174,7 @@
     def set_lac(self, lac):
         self.lac = lac
 
+    def set_cellid(self, cellid):
+        self.cellid = cellid
+
 # vim: expandtab tabstop=4 shiftwidth=4
diff --git a/src/osmo_gsm_tester/bts_osmotrx.py b/src/osmo_gsm_tester/bts_osmotrx.py
index 731daa5..a964169 100644
--- a/src/osmo_gsm_tester/bts_osmotrx.py
+++ b/src/osmo_gsm_tester/bts_osmotrx.py
@@ -31,6 +31,7 @@
     trx = None
     pcu_sk_tmp_dir = None
     lac = None
+    cellid = None
 
     BIN_BTS_TRX = 'osmo-bts-trx'
     BIN_PCU = 'osmo-pcu'
@@ -139,6 +140,8 @@
         config.overlay(values, config.get_defaults('osmo_bts_trx'))
         if self.lac is not None:
             config.overlay(values, { 'location_area_code': self.lac })
+        if self.cellid is not None:
+            config.overlay(values, { 'cell_identity': self.cellid })
         config.overlay(values, self.conf)
         self.dbg(conf=values)
         return values
@@ -149,6 +152,9 @@
     def set_lac(self, lac):
         self.lac = lac
 
+    def set_cellid(self, cellid):
+        self.cellid = cellid
+
 class OsmoTrx(log.Origin):
     suite_run = None
     run_dir = None
diff --git a/src/osmo_gsm_tester/bts_sysmo.py b/src/osmo_gsm_tester/bts_sysmo.py
index 03dc97e..fc546ae 100644
--- a/src/osmo_gsm_tester/bts_sysmo.py
+++ b/src/osmo_gsm_tester/bts_sysmo.py
@@ -30,6 +30,7 @@
     remote_env = None
     remote_dir = None
     lac = None
+    cellid = None
 
     REMOTE_DIR = '/osmo-gsm-tester'
     BTS_SYSMO_BIN = 'osmo-bts-sysmo'
@@ -146,6 +147,8 @@
         config.overlay(values, config.get_defaults('osmo_bts_sysmo'))
         if self.lac is not None:
             config.overlay(values, { 'location_area_code': self.lac })
+        if self.cellid is not None:
+            config.overlay(values, { 'cell_identity': self.cellid })
         config.overlay(values, self.conf)
         self.dbg(conf=values)
         return values
@@ -156,4 +159,7 @@
     def set_lac(self, lac):
         self.lac = lac
 
+    def set_cellid(self, cellid):
+        self.cellid = cellid
+
 # vim: expandtab tabstop=4 shiftwidth=4
diff --git a/src/osmo_gsm_tester/resource.py b/src/osmo_gsm_tester/resource.py
index 9571131..1bacd38 100644
--- a/src/osmo_gsm_tester/resource.py
+++ b/src/osmo_gsm_tester/resource.py
@@ -213,6 +213,9 @@
     def next_lac(self, origin):
         return self.next_persistent_value('lac', '1', schema.uint16, lambda x: str((int(x)+1) % pow(2,16)), origin)
 
+    def next_cellid(self, origin):
+        return self.next_persistent_value('cellid', '1', schema.uint16, lambda x: str((int(x)+1) % pow(2,16)), origin)
+
 class NoResourceExn(log.Error):
     pass
 
diff --git a/src/osmo_gsm_tester/suite.py b/src/osmo_gsm_tester/suite.py
index 9f9421e..fc4930d 100644
--- a/src/osmo_gsm_tester/suite.py
+++ b/src/osmo_gsm_tester/suite.py
@@ -345,6 +345,7 @@
     def bts(self, specifics=None):
         bts = bts_obj(self, self.reserved_resources.get(resource.R_BTS, specifics=specifics))
         bts.set_lac(self.lac())
+        bts.set_cellid(self.cellid())
         self.register_for_cleanup(bts)
         return bts
 
@@ -376,6 +377,11 @@
         self.log('using LAC', lac)
         return lac
 
+    def cellid(self):
+        cellid = self.resources_pool.next_cellid(self)
+        self.log('using CellId', cellid)
+        return cellid
+
     def poll(self):
         if self._processes:
             for process in self._processes:
diff --git a/src/osmo_gsm_tester/templates/osmo-bsc.cfg.tmpl b/src/osmo_gsm_tester/templates/osmo-bsc.cfg.tmpl
index 14aa62d..d79bb2b 100644
--- a/src/osmo_gsm_tester/templates/osmo-bsc.cfg.tmpl
+++ b/src/osmo_gsm_tester/templates/osmo-bsc.cfg.tmpl
@@ -44,7 +44,7 @@
  bts ${loop.index}
   type ${bts.osmobsc_bts_type}
   band ${bts.band}
-  cell_identity 0
+  cell_identity ${bts.cell_identity}
   location_area_code ${bts.location_area_code}
   training_sequence_code 7
   base_station_id_code ${bts.base_station_id_code}
diff --git a/src/osmo_gsm_tester/templates/osmo-nitb.cfg.tmpl b/src/osmo_gsm_tester/templates/osmo-nitb.cfg.tmpl
index fbafc8e..803a375 100644
--- a/src/osmo_gsm_tester/templates/osmo-nitb.cfg.tmpl
+++ b/src/osmo_gsm_tester/templates/osmo-nitb.cfg.tmpl
@@ -37,7 +37,7 @@
  bts ${loop.index}
   type ${bts.osmobsc_bts_type}
   band ${bts.band}
-  cell_identity 0
+  cell_identity ${bts.cell_identity}
   location_area_code ${bts.location_area_code}
   training_sequence_code 7
   base_station_id_code ${bts.base_station_id_code}
