Что не так с этим синтаксисом Паскаля?

Я не могу понять, что здесь происходит. Можешь дать мне руку? Это проблемный код:

While not EOF(Archi) do begin
  index:= index + 1;
  Read(Archi, Alumno[index]);
  Promes[index] := (Alumno[index].nota1 + Alumno[index].nota2) / 2;
  if Promes[index] >= 6 then begin
     alguPromo := true;
     PromosIndex := PromosIndex + 1;
     Promos[PromosIndex]:= Alumno[index];
  end;
  else begin
       if Promes[index] > 4 then cantiRecu:= cantiRecu + 1;
       else begin
            LibresIndex += 1;
            Libres[LibresIndex] := Alumno[index];
            end;
  end;
end;

Компилятор помечает ошибку в строке 10 этого кода (иначе начинаться). Ошибка:     Неустранимый: синтаксическая ошибка,; ожидается, но еще найдено.

Если кто-то хочет компилировать трей, вот весь код:http://pastebin.com/dRg1Lguu

Ответы на вопрос(2)

Ваш ответ на вопрос