          self._s_i -= 1
          self.shifted[self.B(0)] = True
  
      cdef void fast_forward(self) nogil:
          while self.buffer_length() == 0 or self.stack_depth() == 0:
              if self.buffer_length() == 1 and self.stack_depth() == 0:
                  self.push()
                  self.pop()
              elif self.buffer_length() == 0 and self.stack_depth() == 1:
                  self.pop()
 
</s> remove @pytest.mark.xfail
 </s> add  </s> remove     doc.from_array([HEAD], numpy.asarray([[1, 0, -1, -2, -1, -1, -5,
                                           4, 3, 2, 1, 0, 2, 1, -3, 1, 1, -3, -7]],
                                 dtype='int32').T)
 </s> add  </s> remove         # Don't allow spaces to be the first word of a sentence
        elif Lexeme.c_check_flag(st.B_(0).lex, IS_SPACE):
            return False
 </s> add 
        while self.buffer_length() == 0 \
        or self.stack_depth() == 0 \
        or Lexeme.c_check_flag(self.S_(0).lex, IS_SPACE):
          self._s_i -= 1
          self.shifted[self.B(0)] = True
  
      cdef void fast_forward(self) nogil:
        while self.buffer_length() == 0 \
        or self.stack_depth() == 0 \
        or Lexeme.c_check_flag(self.S_(0).lex, IS_SPACE):
              if self.buffer_length() == 1 and self.stack_depth() == 0:
                  self.push()
                  self.pop()
              elif self.buffer_length() == 0 and self.stack_depth() == 1:
                  self.pop()
keep keep keep keep replace keep keep keep keep keep
 * Unwind limit to sentence boundary detection that prevents it from inserting boundaries on whitespace. Replace it with a check for whitespace in StateClass.fast_forward, so that whitespace is LeftArced when it's on the stack. This should prevent the previous problem of whitespace-only sentences. Should fix Issue #184, but may cause further problems. Needs testing. 
spacy/syntax/stateclass.pyx