diff --git a/apps/grgsm_trx b/apps/grgsm_trx
index 5c3dace..b53d12a 100755
--- a/apps/grgsm_trx
+++ b/apps/grgsm_trx
@@ -66,10 +66,6 @@
 			self.phy_freq_offset_hz, self.bind_addr,
 			self.remote_addr, self.base_port)
 
-		# Optional frequency offset
-		if self.phy_freq_offset_hz is not None:
-			self.radio.freq_offset_hz = self.phy_freq_offset_hz
-
 		# Power measurement emulation
 		# Noise: -120 .. -105
 		# BTS: -75 .. -50
diff --git a/python/trx/radio_if.py b/python/trx/radio_if.py
index 11f1d40..a9b0358 100644
--- a/python/trx/radio_if.py
+++ b/python/trx/radio_if.py
@@ -60,7 +60,6 @@
 
 class radio_if(gr.top_block):
 	# PHY specific variables
-	freq_offset_hz = None
 	rx_freq = 935e6
 	tx_freq = 890e6
 	osr = 4
@@ -280,21 +279,19 @@
 		return self.ppm / 1.0e6 * 2 * pi * fc / self.sample_rate
 
 	def set_rx_freq(self, fc):
-		if self.freq_offset_hz is not None:
-			fc += self.freq_offset_hz
-			print("[#] Shifting RX freq. to %s (offset is %s)"
-				% (eng_notation.num_to_str(fc),
-					eng_notation.num_to_str(self.freq_offset_hz)))
+		fc += self.freq_offset_hz
+		print("[#] Shifting RX freq. to %s (offset is %s)"
+			% (eng_notation.num_to_str(fc),
+				eng_notation.num_to_str(self.freq_offset_hz)))
 		self.phy_src.set_center_freq(fc, 0)
 		self.rotator_src.set_phase_inc(self.calc_phase_inc(fc))
 		self.rx_freq = fc
 
 	def set_tx_freq(self, fc):
-		if self.freq_offset_hz is not None:
-			fc += self.freq_offset_hz
-			print("[#] Shifting TX freq. to %s (offset is %s)"
-				% (eng_notation.num_to_str(fc),
-					eng_notation.num_to_str(self.freq_offset_hz)))
+		fc += self.freq_offset_hz
+		print("[#] Shifting TX freq. to %s (offset is %s)"
+			% (eng_notation.num_to_str(fc),
+				eng_notation.num_to_str(self.freq_offset_hz)))
 		self.phy_sink.set_center_freq(fc, 0)
 		self.rotator_sink.set_phase_inc(-self.calc_phase_inc(fc))
 		self.tx_freq = fc
