diff --git a/python/receiver/fcch_burst_tagger.py b/python/receiver/fcch_burst_tagger.py
index fc427a7..a460740 100644
--- a/python/receiver/fcch_burst_tagger.py
+++ b/python/receiver/fcch_burst_tagger.py
@@ -81,9 +81,9 @@
 #                measured_freq = mean(inst_freq[precise_idx:precise_idx+self.processed_block_size])
                 expected_freq = self.symbol_rate/4
                 
-                print "input_items:",len(in0)
-                print "coarse_idx",coarse_idx
-                print "coarse_idx+precise_idx",coarse_idx+precise_idx
+                print("input_items:",len(in0))
+                print("coarse_idx",coarse_idx)
+                print("coarse_idx+precise_idx",coarse_idx+precise_idx)
                 
                 zoomed_spectrum = abs(self.zoomfft(in0[coarse_idx+precise_idx:coarse_idx+precise_idx+self.processed_block_size]))
                 measured_freq = self.f_axis[argmax(zoomed_spectrum)]
@@ -97,9 +97,9 @@
 #   Some additional plots and prints for debugging
 #                print "coarse_idx+precise_idx",coarse_idx+precise_idx
 #                print "offset-self.nitems_written(0):",offset-self.nitems_written(0)
-                print offset-self.prev_offset
+                print(offset-self.prev_offset)
                 self.prev_offset=offset
-                print "freq offset", freq_offset
+                print("freq offset", freq_offset)
 #                freq_offset = measured_freq - expected_freq
 #                plot(self.f_axis, zoomed_spectrum)
 #                show()
diff --git a/python/receiver/sch_detector.py b/python/receiver/sch_detector.py
index d3587d1..626e37d 100644
--- a/python/receiver/sch_detector.py
+++ b/python/receiver/sch_detector.py
@@ -57,10 +57,10 @@
         correlation_bl = correlation_bl/len(self.sync_seq_msk)
         power_bl_mov_avg = uniform_filter1d(abs(correlation_bl)**2,self.L+1,mode='constant',axis=0)
 
-        print "correlation_bl.argmax()",argmax(abs(correlation_bl))
-        print "power_bl_mov_avg.argmax()",(power_bl_mov_avg).argmax()
-        print 'unravel_index(correlation_bl.argmax(), correlation_bl.shape)',unravel_index(argmax(abs(correlation_bl)), correlation_bl.shape)
-        print 'unravel_index(power_bl_mov_avg.argmax(), power_bl_mov_avg.shape)',unravel_index(power_bl_mov_avg.argmax(), power_bl_mov_avg.shape)
+        print("correlation_bl.argmax()",argmax(abs(correlation_bl)))
+        print("power_bl_mov_avg.argmax()",(power_bl_mov_avg).argmax())
+        print('unravel_index(correlation_bl.argmax(), correlation_bl.shape)',unravel_index(argmax(abs(correlation_bl)), correlation_bl.shape))
+        print('unravel_index(power_bl_mov_avg.argmax(), power_bl_mov_avg.shape)',unravel_index(power_bl_mov_avg.argmax(), power_bl_mov_avg.shape))
         (r_corrmax, c_corrmax)=unravel_index(argmax(abs(correlation_bl)), correlation_bl.shape)
         (r_powmax, c_powmax)=unravel_index(power_bl_mov_avg.argmax(), power_bl_mov_avg.shape)
         
@@ -79,7 +79,7 @@
 #                plot(range(ii,len(correlation_bl[:,0])*self.OSR,self.OSR),power_bl_mov_avg[:,ii]*5e6,'r.')
 #        show()
 #        figure()
-        print 'r_powmax: ',r_powmax
+        print('r_powmax: ',r_powmax)
 #        plot(abs(correlation_bl[range(r_powmax-(self.L+1)/2+1,r_powmax+(self.L+1)/2+1), c_powmax]),'g')
 #        hold(True)
 #        plot(abs(correlation_bl[range(r_corrmax-(self.L+1)/2+1,r_corrmax+(self.L+1)/2+1), c_corrmax]),'r')
