diff --git a/apps/grgsm_scanner b/apps/grgsm_scanner
index 9039ef0..6f708b7 100755
--- a/apps/grgsm_scanner
+++ b/apps/grgsm_scanner
@@ -288,7 +288,7 @@
             return self.getKey().__cmp__(other.getKey())
 
     def __repr__(self):
-        return "ARFCN: %4u, Freq: %6.1fM, CID: %5u, LAC: %5u, MCC: %3u, MNC: %3u, Pwr: %3i" % (
+        return "ARFCN: %4d, Freq: %6.1fM, CID: %5u, LAC: %5u, MCC: %3u, MNC: %3u, Pwr: %3i" % (
             self.arfcn, self.freq / 1e6, self.cid, self.lac, self.mcc, self.mnc, self.power)
 
 def do_scan(samp_rate, band, speed, ppm, gain, args, prn = None):
diff --git a/python/misc_utils/arfcn.py b/python/misc_utils/arfcn.py
index bf227b4..86d379d 100644
--- a/python/misc_utils/arfcn.py
+++ b/python/misc_utils/arfcn.py
@@ -112,7 +112,7 @@
         if offset is not None:
             f = f_start + (__chan_spacing * (arfcn - offset))
             return round(f, 1)
-    return None
+    return -1
 
 
 def arfcn2downlink(arfcn, band):
@@ -120,7 +120,7 @@
         conf = __band_conf.get(band)
         distance = conf['distance']
         return round(arfcn2uplink(arfcn, band) + distance, 1)
-    return None
+    return -1
 
 
 def uplink2arfcn(freq, band):
@@ -135,7 +135,7 @@
             arfcn = int(round(offset + ((freq - f_start) / __chan_spacing), 0))
             if arfcn_start <= arfcn <= arfcn_end:
                 return arfcn
-    return None
+    return -1
 
 
 def downlink2arfcn(freq, band):
@@ -144,7 +144,7 @@
         distance = conf['distance']
         freq_uplink = freq - distance
         return int(round(uplink2arfcn(freq_uplink, band), 0))
-    return None
+    return -1
 
 
 def get_arfcn_ranges(band):
