diff --git a/maca_trans_parser/src/feat_fct.c b/maca_trans_parser/src/feat_fct.c
index b0565505ea9ab0b69ef430114ecb95819d0e92f2..80c7836bc10859d0a0c15d37d23743e9262413f0 100644
--- a/maca_trans_parser/src/feat_fct.c
+++ b/maca_trans_parser/src/feat_fct.c
@@ -14,6 +14,7 @@
 int s0g(void *c) {return (word_get_gov(stack_s0(config_get_stack((config *) c))) == WORD_INVALID_GOV) ? 0 : 1;}
 int s0sf(void *c) {return word_get_label(stack_s0(config_get_stack((config *) c)));}
 
+int s0seg(void *c) {return word_get_sent_seg(stack_s0(config_get_stack((config *) c)));}
 int s0f(void *c) {return word_get_form(stack_s0(config_get_stack((config *) c)));}
 int s0l(void *c) {return word_get_lemma(stack_s0(config_get_stack((config *) c)));}
 int s0c(void *c) {return word_get_cpos(stack_s0(config_get_stack((config *) c)));}
@@ -178,8 +179,8 @@ int b0sf(void *c) {return word_get_label(word_buffer_b0(config_get_buffer((confi
 int b0len(void *c) {
   int len = 0;
   word *w = word_buffer_b0(config_get_buffer((config *) c));
-  if(w->input)
-    len = strlen(w->input);
+  if(w && w->form)
+    len = strlen(w->form);
   return (len > 7)? 7 : len;
 }
 
@@ -856,6 +857,7 @@ feat_lib *feat_lib_build(void)
   feat_lib_add(fl, FEAT_TYPE_LABEL,  (char *)"s0sf", s0sf);
   feat_lib_add(fl, FEAT_TYPE_INT,    (char *)"s0g", s0g);
 
+  feat_lib_add(fl, FEAT_TYPE_INT,  (char *)"s0seg", s0seg);
   feat_lib_add(fl, FEAT_TYPE_FORM,  (char *)"s0f", s0f);
   feat_lib_add(fl, FEAT_TYPE_LEMMA, (char *)"s0l", s0l);
   feat_lib_add(fl, FEAT_TYPE_CPOS,  (char *)"s0c", s0c);
diff --git a/maca_trans_parser/src/movements.c b/maca_trans_parser/src/movements.c
index 8622e4a62b5874ac136237daef6859b80bba25c1..1107e7910260cd07e012d013fb079ab608340fbd 100644
--- a/maca_trans_parser/src/movements.c
+++ b/maca_trans_parser/src/movements.c
@@ -158,7 +158,7 @@ int movement_root(config *c, int movement_code, int root_code)
   s0->is_root = 1;
 
   /*---- ajout 19/12/17 ----------*/
-  word_set_sent_seg(word_buffer_get_word_n(config_get_buffer(c), s0->rspan), 1); 
+  //   word_set_sent_seg(word_buffer_get_word_n(config_get_buffer(c), s0->rspan), 1); 
   /*-----------------------------*/
   stack_pop(config_get_stack(c));
 
diff --git a/maca_trans_parser/src/oracle_parser_arc_eager.c b/maca_trans_parser/src/oracle_parser_arc_eager.c
index e258c93d632757a4346f3b7c6c3b9e6a009f8ceb..7a34fcdca157840a9f270cca723c3c17ddc067db 100644
--- a/maca_trans_parser/src/oracle_parser_arc_eager.c
+++ b/maca_trans_parser/src/oracle_parser_arc_eager.c
@@ -61,18 +61,17 @@ int oracle_parser_arc_eager(config *c, word_buffer *ref, int root_label)
 	  printf("dans ref gov de b0 (%d) = %d\n", b0_index, b0_gov_index);*/
 
     /* s0 is the root of the sentence */
-    if((s0_label == root_label)
+    /*    if((s0_label == root_label)
        && check_all_dependents_of_word_in_ref_are_in_hyp(c, ref, s0_index)
        ){
       return MVT_PARSER_ROOT;
-    }
+      }*/
 
     /* word on the top of the stack is an end of sentence marker */
-    /*      if((word_get_sent_seg(word_buffer_get_word_n(ref, s0_index)) == 1)
+    if((word_get_sent_seg(word_buffer_get_word_n(ref, s0_index)) == 1)
        && (word_get_sent_seg(word_buffer_get_word_n(config_get_buffer(c), s0_index)) != 1)){
       return MVT_PARSER_EOS;
-      }*/
-
+      }
     /* LEFT ARC  b0 is the governor and s0 the dependent */
     if(s0_gov_index == b0_index){
       return movement_parser_left_code(word_get_label(word_buffer_get_word_n(ref, s0_index)));