diff --git a/src/demod/python/cqpsk.py b/src/demod/python/cqpsk.py
index f9621b1..98f9be7 100644
--- a/src/demod/python/cqpsk.py
+++ b/src/demod/python/cqpsk.py
@@ -27,7 +27,7 @@
 differential PI/4 CQPSK modulation and demodulation.
 """
 
-from gnuradio import gr, gru
+from gnuradio import gr, gru, blocks, analog, filter
 from math import pi, sqrt
 #import psk
 import cmath
@@ -238,19 +238,20 @@ class cqpsk_demod(gr.hier_block2):
  
         # Automatic gain control
         scale = (1.0/16384.0)
-        self.pre_scaler = gr.multiply_const_cc(scale)   # scale the signal from full-range to +-1
+	self.pre_scaler = blocks.multiply_const_cc(scale)
+#        self.pre_scaler = blocks.multiply_const_cc(scale)   # scale the signal from full-range to +-1
         #self.agc = gr.agc2_cc(0.6e-1, 1e-3, 1, 1, 100)
-        self.agc = gr.feedforward_agc_cc(16, 2.0)
+        self.agc = analog.feedforward_agc_cc(16, 2.0)
        
         # RRC data filter
         ntaps = 11 * samples_per_symbol
-        self.rrc_taps = gr.firdes.root_raised_cosine(
+        self.rrc_taps = filter.firdes.root_raised_cosine(
             1.0,                      # gain
             self._samples_per_symbol, # sampling rate
             1.0,                      # symbol rate
             self._excess_bw,          # excess bandwidth (roll-off factor)
             ntaps)
-        self.rrc_filter=gr.interp_fir_filter_ccf(1, self.rrc_taps)        
+        self.rrc_filter=filter.interp_fir_filter_ccf(1, self.rrc_taps)        
 
         if not self._mm_gain_mu:
             sbs_to_mm = {2: 0.050, 3: 0.075, 4: 0.11, 5: 0.125, 6: 0.15, 7: 0.15}
@@ -263,7 +264,7 @@ class cqpsk_demod(gr.hier_block2):
         fmax = 0.025
         
 	if not _def_has_gr_digital:
-            self.receiver=gr.mpsk_receiver_cc(arity, pi/4.0,
+           self.receiver=digital.mpsk_receiver_cc(arity, pi/4.0,
                                           self._costas_alpha, self._costas_beta,
                                           fmin, fmax,
                                           self._mm_mu, self._mm_gain_mu,
@@ -277,17 +278,17 @@ class cqpsk_demod(gr.hier_block2):
                                           self._mm_omega, self._mm_gain_omega,
                                           self._mm_omega_relative_limit)
 
-	    self.receiver.set_alpha(self._costas_alpha)
-	    self.receiver.set_beta(self._costas_beta)
+#	self.receiver.set_alpha(self._costas_alpha)
+#	self.receiver.set_beta(self._costas_beta)
 
         # Perform Differential decoding on the constellation
-        self.diffdec = gr.diff_phasor_cc()
+        self.diffdec = digital.diff_phasor_cc()
 
         # take angle of the difference (in radians)
-        self.to_float = gr.complex_to_arg()
+        self.to_float = blocks.complex_to_arg()
 
         # convert from radians such that signal is in -3/-1/+1/+3
-        self.rescale = gr.multiply_const_ff( 1 / (pi / 4) )
+        self.rescale = blocks.multiply_const_ff( 1 / (pi / 4) )
 
         if verbose:
             self._print_verbage()
@@ -322,7 +323,7 @@ class cqpsk_demod(gr.hier_block2):
     def _setup_logging(self):
         print "Modulation logging turned on."
         self.connect(self.pre_scaler,
-                     gr.file_sink(gr.sizeof_gr_complex, "rx_prescaler.dat"))
+                     blocks.file_sink(gr.sizeof_gr_complex, "rx_prescaler.dat"))
         self.connect(self.agc,
                      gr.file_sink(gr.sizeof_gr_complex, "rx_agc.dat"))
         self.connect(self.rrc_filter,
diff --git a/src/demod/python/osmosdr-tetra_demod_fft.py b/src/demod/python/osmosdr-tetra_demod_fft.py
index 2b2918a..450f6df 100755
--- a/src/demod/python/osmosdr-tetra_demod_fft.py
+++ b/src/demod/python/osmosdr-tetra_demod_fft.py
@@ -13,7 +13,7 @@
 
 import sys
 import math
-from gnuradio import gr, gru, eng_notation, blks2, optfir
+from gnuradio import gr, gru, eng_notation, blocks, filter, wxgui
 from gnuradio.eng_option import eng_option
 from gnuradio.wxgui import fftsink2
 from gnuradio.wxgui import scopesink2
@@ -39,7 +39,7 @@ class top_block(grc_wxgui.top_block_gui):
     self.ifreq = options.frequency
     self.rfgain = options.gain
 
-    self.src = osmosdr.source_c(options.args)
+    self.src = osmosdr.source(options.args)
     self.src.set_center_freq(self.ifreq)
     self.src.set_sample_rate(int(options.sample_rate))
 
@@ -67,10 +67,12 @@ class top_block(grc_wxgui.top_block_gui):
     else:
         first_decim = 10
 
-    self.offset = 0
+    self.offset = options.offset
+    sys.stderr.write("offset is: %dHz\n" % self.offset)
 
-    taps = gr.firdes.low_pass(1.0, sample_rate, options.low_pass, options.low_pass * 0.2, gr.firdes.WIN_HANN)
-    self.tuner = gr.freq_xlating_fir_filter_ccf(first_decim, taps, self.offset, sample_rate)
+
+    taps = filter.firdes.low_pass(1.0, sample_rate, options.low_pass, options.low_pass * 0.2, filter.firdes.WIN_HANN)
+    self.tuner = filter.freq_xlating_fir_filter_ccf(first_decim, taps, self.offset, sample_rate)
 
     self.demod = cqpsk.cqpsk_demod(
         samples_per_symbol = sps,
@@ -82,19 +84,22 @@ class top_block(grc_wxgui.top_block_gui):
         log=options.log,
         verbose=options.verbose)
 
-    self.output = gr.file_sink(gr.sizeof_float, options.output_file)
+    self.output = blocks.file_sink(gr.sizeof_float, options.output_file)
 
     rerate = float(sample_rate / float(first_decim)) / float(out_sample_rate)
     sys.stderr.write("resampling factor: %f\n" % rerate)
 
     if rerate.is_integer():
         sys.stderr.write("using pfb decimator\n")
-        self.resamp = blks2.pfb_decimator_ccf(int(rerate))
+        self.resamp = filter.pfb_decimator_ccf(int(rerate), (), 0)
     else:
         sys.stderr.write("using pfb resampler\n")
-        self.resamp = blks2.pfb_arb_resampler_ccf(1 / rerate)
+        self.resamp = filter.pfb_arb_resampler_ccf(1 / rerate, taps)
 
-    self.connect(self.src, self.tuner, self.resamp, self.demod, self.output)
+    self.connect((self.src, 0), (self.tuner, 0))
+    self.connect((self.tuner, 0), (self.resamp, 0))
+    self.connect((self.resamp, 0), (self.demod, 0))
+    self.connect((self.demod, 0), (self.output, 0))
 
     self.Main = wx.Notebook(self.GetWin(), style=wx.NB_TOP)
     self.Main.AddPage(grc_wxgui.Panel(self.Main), "Wideband Spectrum")
@@ -220,7 +225,7 @@ class top_block(grc_wxgui.top_block_gui):
         ac_couple=False,
         xy_mode=False,
         num_inputs=1,
-        trig_mode=gr.gr_TRIG_MODE_AUTO,
+        trig_mode=wxgui.TRIG_MODE_AUTO,
         y_axis_label="Counts",
 	)
     self.Main.GetPage(2).Add(self.scope3.win)
@@ -232,12 +237,15 @@ def get_options():
 
     parser.add_option("-a", "--args", type="string", default="",
         help="gr-osmosdr device arguments")
-    parser.add_option("-s", "--sample-rate", type="eng_float", default=1800000,
+    parser.add_option("-s", "--sample-rate", type="eng_float", default=2000000,
         help="set receiver sample rate (default 1800000)")
-    parser.add_option("-f", "--frequency", type="eng_float", default=394.4e6,
+    parser.add_option("-f", "--frequency", type="eng_float", default=427e6,
         help="set receiver center frequency")
     parser.add_option("-g", "--gain", type="eng_float", default=None,
         help="set receiver gain")
+    
+    parser.add_option("-t", "--offset", type="eng_float", default=0,
+        help="set offset (default 0)")
 
     # demodulator related settings
     parser.add_option("-l", "--log", action="store_true", default=False, help="dump debug .dat files")
