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 6e1c379f7f6d1df85e3c5e931b3103109990dfd9..bbfaf481454c7d32e95b8326b4c165f33573cab9 100644
--- a/maca_trans_parser/src/simple_decoder_parser_arc_eager.c
+++ b/maca_trans_parser/src/simple_decoder_parser_arc_eager.c
@@ -151,9 +151,10 @@ void simple_decoder_parser_arc_eager(context *ctx)
   int index;
   float score;
   
-  double sumExp = -1;
-  double currentSumExp = 0.;
+  double sumExp = 0;
+  double currentSumExp = 0;
   double ScoreTranslation = -10.;
+  int FlagNotInitExp = 1;
   
   word* word_scored;
   
@@ -195,11 +196,11 @@ void simple_decoder_parser_arc_eager(context *ctx)
 
 	  if(b1 && b2 && b3){
       printf("\n*** %f %f %d %f \n",ScoreTranslation,vcode_array[i].score, i, sumExp);
-      if(sumExp + 0.5 < 0){
+      if(FlagNotInitExp){
         printf(" %f %f %d ",ScoreTranslation,vcode_array[i].score, i);
         ScoreTranslation += vcode_array[i].score;
         printf(" %f " ,ScoreTranslation);
-        sumExp = 0;
+        FlagNotInitExp = 0;
       }
       if(vcode_array[i].score - ScoreTranslation > 0){
         sumExp += exp(vcode_array[i].score - ScoreTranslation);