diff --git a/srslte/examples/cell_search.c b/srslte/examples/cell_search.c
index fb4933ebdc89a57d042b534c602938185ac08ef1..02c3d8adaf06e5b09e67b0e8830615e8a390ca0e 100644
--- a/srslte/examples/cell_search.c
+++ b/srslte/examples/cell_search.c
@@ -218,6 +218,7 @@ int main(int argc, char **argv) {
     srslte_rf_start_rx_stream(&rf);
     
     n = srslte_ue_cellsearch_scan(&cs, found_cells, NULL); 
+    srslte_ue_cellsearch_free(&cs);
     if (n < 0) {
       fprintf(stderr, "Error searching cell\n");
       exit(-1);
diff --git a/srslte/lib/sync/pss.c b/srslte/lib/sync/pss.c
index 46c02414eaa2074c32172a4364e6219ed3d5fc74..647baa8389c17777e0332649743cc27e85d08124 100644
--- a/srslte/lib/sync/pss.c
+++ b/srslte/lib/sync/pss.c
@@ -202,6 +202,8 @@ void srslte_pss_synch_free(srslte_pss_synch_t *q) {
     if (q->conv_output_avg) {
       free(q->conv_output_avg);
     }
+    
+    srslte_dft_plan_free(&q->dftp_input);
 
     bzero(q, sizeof(srslte_pss_synch_t));    
   }