diff --git a/apps/grgsm_livemon b/apps/grgsm_livemon
index d4376e4..765ebae 100755
--- a/apps/grgsm_livemon
+++ b/apps/grgsm_livemon
@@ -5,7 +5,7 @@
 # Title: Gr-gsm Livemon
 # Author: Piotr Krysik
 # Description: Interactive monitor of a single C0 channel with analysis performed by Wireshark (command to run wireshark: sudo wireshark -k -f udp -Y gsmtap -i lo)
-# Generated: Mon Jul 18 18:08:34 2016
+# Generated: Mon Jan 23 21:28:25 2017
 ##################################################
 
 if __name__ == '__main__':
@@ -82,13 +82,13 @@
         ##################################################
         # Blocks
         ##################################################
-        self._ppm_slider_range = Range(-150, 150, 1, ppm, 100)
+        self._ppm_slider_range = Range(-150, 150, 0.1, ppm, 100)
         self._ppm_slider_win = RangeWidget(self._ppm_slider_range, self.set_ppm_slider, "PPM Offset", "counter", float)
         self.top_layout.addWidget(self._ppm_slider_win)
         self._g_slider_range = Range(0, 50, 0.5, gain, 100)
         self._g_slider_win = RangeWidget(self._g_slider_range, self.set_g_slider, "Gain", "counter", float)
         self.top_layout.addWidget(self._g_slider_win)
-        self._fc_slider_range = Range(925e6, 1990e6, 2e5, fc, 100)
+        self._fc_slider_range = Range(800e6, 1990e6, 2e5, fc, 100)
         self._fc_slider_win = RangeWidget(self._fc_slider_range, self.set_fc_slider, "Frequency", "counter_slider", float)
         self.top_layout.addWidget(self._fc_slider_win)
         self.rtlsdr_source_0 = osmosdr.source( args="numchan=" + str(1) + " " + args )
@@ -152,7 +152,7 @@
         self.gsm_message_printer_1 = grgsm.message_printer(pmt.intern(""), False,
             False, False)
         self.gsm_input_0 = grgsm.gsm_input(
-            ppm=0,
+            ppm=ppm-int(ppm),
             osr=4,
             fc=fc,
             samp_rate_in=samp_rate,
@@ -220,6 +220,7 @@
     def set_ppm(self, ppm):
         self.ppm = ppm
         self.set_ppm_slider(self.ppm)
+        self.gsm_input_0.set_ppm(self.ppm-int(self.ppm))
 
     def get_samp_rate(self):
         return self.samp_rate
@@ -281,7 +282,7 @@
         "-g", "--gain", dest="gain", type="eng_float", default=eng_notation.num_to_str(30),
         help="Set gain [default=%default]")
     parser.add_option(
-        "-p", "--ppm", dest="ppm", type="intx", default=0,
+        "-p", "--ppm", dest="ppm", type="eng_float", default=eng_notation.num_to_str(0),
         help="Set ppm [default=%default]")
     parser.add_option(
         "-s", "--samp-rate", dest="samp_rate", type="eng_float", default=eng_notation.num_to_str(2000000.052982),
diff --git a/apps/grgsm_livemon.grc b/apps/grgsm_livemon.grc
index 6394924..77640c9 100644
--- a/apps/grgsm_livemon.grc
+++ b/apps/grgsm_livemon.grc
@@ -125,7 +125,7 @@
     </param>
     <param>
       <key>start</key>
-      <value>925e6</value>
+      <value>800e6</value>
     </param>
     <param>
       <key>step</key>
@@ -255,7 +255,7 @@
     </param>
     <param>
       <key>step</key>
-      <value>1</value>
+      <value>0.1</value>
     </param>
     <param>
       <key>stop</key>
@@ -580,7 +580,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(896, 283)</value>
+      <value>(896, 284)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -756,7 +756,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(1112, 331)</value>
+      <value>(1104, 333)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -827,7 +827,7 @@
     </param>
     <param>
       <key>ppm</key>
-      <value>0</value>
+      <value>ppm-int(ppm)</value>
     </param>
     <param>
       <key>samp_rate_in</key>
@@ -854,7 +854,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(1496, 291)</value>
+      <value>(1512, 270)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -956,7 +956,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(912, 339)</value>
+      <value>(896, 340)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -1089,7 +1089,7 @@
     </param>
     <param>
       <key>type</key>
-      <value>intx</value>
+      <value>eng_float</value>
     </param>
     <param>
       <key>value</key>
