diff --git a/lib/misc_utils/controlled_const_source_f_impl.cc b/lib/misc_utils/controlled_const_source_f_impl.cc
index d58f04f..4aa2f14 100644
--- a/lib/misc_utils/controlled_const_source_f_impl.cc
+++ b/lib/misc_utils/controlled_const_source_f_impl.cc
@@ -78,8 +78,6 @@
     void controlled_const_source_f_impl::set_constant(float constant){
       d_constant = constant;
     }
-    
-
 
   } /* namespace gsm */
 } /* namespace gr */
diff --git a/lib/misc_utils/controlled_rotator_cc_impl.cc b/lib/misc_utils/controlled_rotator_cc_impl.cc
index 5877ab1..ee72a6a 100644
--- a/lib/misc_utils/controlled_rotator_cc_impl.cc
+++ b/lib/misc_utils/controlled_rotator_cc_impl.cc
@@ -83,14 +83,16 @@
         while(ii < noutput_items){
           //look for different values on phase increment control input
           if(d_phase_inc != (*pp)){
+
             set_phase_inc(*(pp));      //set new value of phase increment
             
             float freq_offset_setting = (*(pp) / (2*M_PI)) * d_samp_rate; //send stream tag with a new value of the frequency offset
-            int offset = nitems_written(0);
+
+            uint64_t offset = nitems_written(0);
             pmt::pmt_t key = pmt::string_to_symbol("setting_freq_offset");
             pmt::pmt_t value =  pmt::from_double(freq_offset_setting);
             add_item_tag(0,offset, key, value);
-            
+    
             break;
           }
           pp++;
diff --git a/lib/misc_utils/extract_system_info_impl.cc b/lib/misc_utils/extract_system_info_impl.cc
index 1d20d8d..6b6ce5f 100644
--- a/lib/misc_utils/extract_system_info_impl.cc
+++ b/lib/misc_utils/extract_system_info_impl.cc
@@ -90,7 +90,6 @@
             info.lac = (msg_elements[6]<<8)+msg_elements[7];             //wyciągnij lac
             info.mnc = (msg_elements[5]>>4);    //wyciągnij id operatora
 
-
             std::set<chan_info, compare_id>::iterator iter = d_c0_channels.find(info);
             boost::mutex::scoped_lock lock(extract_mutex);
             if(iter != d_c0_channels.end()){
@@ -178,7 +177,21 @@
     
     void extract_system_info_impl::reset()
     {
-        d_c0_channels.clear();
+        std::set<chan_info, compare_id>::iterator iter;
+        
+        chan_info info;
+
+        for(iter = d_c0_channels.begin(); iter != d_c0_channels.end(); iter++){
+            info.id = iter->id;
+            info.cell_id = iter->cell_id;             //wyciągnij cell id
+            info.lac = iter->lac;            //wyciągnij lac
+            info.mnc = iter->mnc;
+            info.pwr_db = -111;
+            d_c0_channels.erase(iter);
+            d_c0_channels.insert(info);
+        }
+//        d_c0_channels.clear();
+        
         if(!empty_p(pmt::mp("bursts"))){
             delete_head_blocking(pmt::mp("bursts"));
         }
