diff --git a/src/gstkaldinnet2onlinedecoder.cc b/src/gstkaldinnet2onlinedecoder.cc
index 3a7455e90d6d39f6236657cfd6c66423a1ef1228..0fd8e81fe5b7c5183ae16d7d2fc85fc0dd08654e 100644
--- a/src/gstkaldinnet2onlinedecoder.cc
+++ b/src/gstkaldinnet2onlinedecoder.cc
@@ -70,12 +70,15 @@ enum {
   PROP_WORD_SYMS,
   PROP_DO_ENDPOINTING,
   PROP_ADAPTATION_STATE,
+  PROP_INVERSE_SCALE,
+  PROP_LMWT_SCALE,
   PROP_LAST
 };
 
 #define DEFAULT_MODEL           "final.mdl"
 #define DEFAULT_FST             "HCLG.fst"
 #define DEFAULT_WORD_SYMS       "words.txt"
+#define DEFAULT_LMWT_SCALE	1.0
 
 /* the capabilities of the inputs and outputs.
  *
@@ -185,6 +188,26 @@ static void gst_kaldinnet2onlinedecoder_class_init(
                           "",
                           (GParamFlags) G_PARAM_READWRITE));
 
+  g_object_class_install_property(
+      gobject_class,
+      PROP_INVERSE_SCALE,
+      g_param_spec_boolean(
+          "inverse-scale", "If true, inverse acoustic scale in lattice",
+          "If true, inverse the acoustic scaling of the output lattice",
+          FALSE,
+          (GParamFlags) G_PARAM_READWRITE));
+
+  g_object_class_install_property(
+      gobject_class,
+      PROP_LMWT_SCALE,
+      g_param_spec_float(
+          "lmwt-scale", "LM weight for scaling output lattice",
+          "LM scaling for the output lattice, usually in conjunction with inverse-scaling=true",
+          G_MINFLOAT,
+          G_MAXFLOAT,
+          DEFAULT_LMWT_SCALE,
+          (GParamFlags) G_PARAM_READWRITE));
+
   gst_kaldinnet2onlinedecoder_signals[PARTIAL_RESULT_SIGNAL] = g_signal_new(
       "partial-result", G_TYPE_FROM_CLASS(klass), G_SIGNAL_RUN_LAST,
       G_STRUCT_OFFSET(Gstkaldinnet2onlinedecoderClass, partial_result),
@@ -260,6 +283,8 @@ static void gst_kaldinnet2onlinedecoder_init(
   filter->feature_info = NULL;
   filter->sample_rate = 0;
   filter->decoding = false;
+  filter->lmwt_scale = DEFAULT_LMWT_SCALE;
+  filter->inverse_scale = FALSE;
 
   // init properties from various Kaldi Opts
   GstElementClass * klass = GST_ELEMENT_GET_CLASS(filter);
@@ -366,6 +391,12 @@ static void gst_kaldinnet2onlinedecoder_set_property(GObject * object,
     case PROP_DO_ENDPOINTING:
       filter->do_endpointing = g_value_get_boolean(value);
       break;
+    case PROP_INVERSE_SCALE:
+      filter->inverse_scale = g_value_get_boolean(value);
+      break;
+    case PROP_LMWT_SCALE:
+      filter->lmwt_scale = g_value_get_float(value);
+      break;
     case PROP_ADAPTATION_STATE:
       {
         if (G_VALUE_HOLDS_STRING(value)) {
@@ -463,6 +494,12 @@ static void gst_kaldinnet2onlinedecoder_get_property(GObject * object,
     case PROP_DO_ENDPOINTING:
       g_value_set_boolean(value, filter->do_endpointing);
       break;
+    case PROP_INVERSE_SCALE:
+      g_value_set_boolean(value, filter->inverse_scale);
+      break;
+    case PROP_LMWT_SCALE:
+      g_value_set_float(value, filter->lmwt_scale);
+      break;
     case PROP_ADAPTATION_STATE:
       string_stream.clear();
       if (filter->adaptation_state) {
@@ -513,13 +550,22 @@ static void gst_kaldinnet2onlinedecoder_get_property(GObject * object,
 }
 
 static void gst_kaldinnet2onlinedecoder_final_result(
-    Gstkaldinnet2onlinedecoder * filter, const CompactLattice &clat,
+    Gstkaldinnet2onlinedecoder * filter, CompactLattice &clat,
     int64 *tot_num_frames, double *tot_like, guint *num_words) {
   if (clat.NumStates() == 0) {
     KALDI_WARN<< "Empty lattice.";
     return;
   }
   CompactLattice best_path_clat;
+
+  if (filter->inverse_scale) {
+    BaseFloat inv_acoustic_scale = 1.0 / filter->nnet2_decoding_config->
+	    decodable_opts.acoustic_scale;
+    fst::ScaleLattice(fst::AcousticLatticeScale(inv_acoustic_scale), &clat);
+  }
+
+  fst::ScaleLattice(fst::LatticeScale(filter->lmwt_scale, 1.0), &clat);
+
   CompactLatticeShortestPath(clat, &best_path_clat);
 
   Lattice best_path_lat;
diff --git a/src/gstkaldinnet2onlinedecoder.h b/src/gstkaldinnet2onlinedecoder.h
index ef02fae1440c8fd7b7a6e9a266b7343d91d195e7..3adf837f2b6bc7b16953b9dd866b7c40476cd98d 100644
--- a/src/gstkaldinnet2onlinedecoder.h
+++ b/src/gstkaldinnet2onlinedecoder.h
@@ -60,6 +60,8 @@ struct _Gstkaldinnet2onlinedecoder {
 
   gboolean silent;
   gboolean do_endpointing;
+  gboolean inverse_scale;
+  float lmwt_scale;
   GstBufferSource *audio_source;
 
   gchar* model_rspecifier;