diff --git a/src/gstkaldinnet2onlinedecoder.cc b/src/gstkaldinnet2onlinedecoder.cc
index 8031a839bc7937bdcfff1088f1532dd2c3ee21f2..70f9aa38093c4e6a12480e1d3fc253bc755f1d91 100644
--- a/src/gstkaldinnet2onlinedecoder.cc
+++ b/src/gstkaldinnet2onlinedecoder.cc
@@ -1100,6 +1100,18 @@ static void gst_kaldinnet2onlinedecoder_finalize(GObject * object) {
   if (filter->adaptation_state) {
     delete filter->adaptation_state;
   }
+  g_free(filter->lm_fst_name);
+  g_free(filter->big_lm_const_arpa_name);
+  if (filter->lm_fst) {
+    delete filter->lm_fst;
+  }
+  if (filter->big_lm_const_arpa) {
+    delete filter->big_lm_const_arpa;
+  }
+  if (filter->lm_compose_cache) {
+    delete filter->lm_compose_cache;
+  }
+
 
   G_OBJECT_CLASS(parent_class)->finalize(object);
 }