Fix by to forward to next stream

Also use the fix to simplify changed_state()