diff --git a/apps/grgsm_decode b/apps/grgsm_decode
index 222d67e..66ecae2 100755
--- a/apps/grgsm_decode
+++ b/apps/grgsm_decode
@@ -350,7 +350,7 @@
         if options.band:
             if options.band not in grgsm.arfcn.get_bands():
                 parser.error("Invalid GSM band\n")
-            elif not grgsm.arfcn.is_valid_arfcn(options.arfcn, options.band):
+            elif not grgsm.arfcn.is_valid_arfcn(options.arfcn):
                 parser.error("ARFCN is not valid in the specified band\n")
             else:
                 arfcn = options.arfcn
@@ -358,7 +358,7 @@
         else:
             arfcn = options.arfcn
             for band in grgsm.arfcn.get_bands():
-                if grgsm.arfcn.is_valid_arfcn(arfcn, band):
+                if grgsm.arfcn.is_valid_arfcn(arfcn):
                     fc = grgsm.arfcn.arfcn2downlink(arfcn, band)
                     break
     elif options.fc:
diff --git a/apps/helpers/grgsm_capture b/apps/helpers/grgsm_capture
index add42d3..d14d1e8 100755
--- a/apps/helpers/grgsm_capture
+++ b/apps/helpers/grgsm_capture
@@ -142,7 +142,7 @@
                 new_freq = grgsm.arfcn.arfcn2downlink(self.arfcn, self.band)
             else:
                 for band in grgsm.arfcn.get_bands():
-                    if grgsm.arfcn.is_valid_arfcn(arfcn, band):
+                    if grgsm.arfcn.is_valid_arfcn(arfcn):
                         new_freq = grgsm.arfcn.arfcn2downlink(arfcn, band)
                         break
             self.set_fc(new_freq)
@@ -232,7 +232,7 @@
         if options.band:
             if options.band not in grgsm.arfcn.get_bands():
                 parser.error("Invalid GSM band\n")
-            elif not grgsm.arfcn.is_valid_arfcn(options.arfcn, options.band):
+            elif not grgsm.arfcn.is_valid_arfcn(options.arfcn):
                 parser.error("ARFCN is not valid in the specified band\n")
             else:
                 arfcn = options.arfcn
@@ -240,7 +240,7 @@
         else:
             arfcn = options.arfcn
             for band in grgsm.arfcn.get_bands():
-                if grgsm.arfcn.is_valid_arfcn(arfcn, band):
+                if grgsm.arfcn.is_valid_arfcn(arfcn):
                     fc = grgsm.arfcn.arfcn2downlink(arfcn, band)
                     break
     elif options.fc:
