diff --git a/maca_trans_parser/src/simple_decoder_parser_arc_eager.c b/maca_trans_parser/src/simple_decoder_parser_arc_eager.c
index 8671b3869423f7a855c10e393f88dc22a28827bd..1458686673017d8e6ec77a90db48fd4d4b6eb5a3 100644
--- a/maca_trans_parser/src/simple_decoder_parser_arc_eager.c
+++ b/maca_trans_parser/src/simple_decoder_parser_arc_eager.c
@@ -151,7 +151,7 @@ void simple_decoder_parser_arc_eager(context *ctx)
   int index;
   float score;
   
-  double sumExp = 0.;
+  double sumExp = -1.;
   double currentSumExp = 0.;
   double ScoreTranslation = -150.;
   
@@ -194,8 +194,9 @@ void simple_decoder_parser_arc_eager(context *ctx)
 	  int b3 = respect_buffer_constraint(ctx->partial_mode, c, movement_parser_type(vcode_array[i].class_code), movement_parser_label(vcode_array[i].class_code));
 
 	  if(b1 && b2 && b3){
-      if(sumExp == 0.){
+      if(sumExp < 0.){
         ScoreTranslation += vcode_array[i].score;
+        sumExp = 0.
       }
       if(vcode_array[i].score - ScoreTranslation >= 0){
         sumExp += exp(vcode_array[i].score - ScoreTranslation);