with other clause error in quartus, why?

This simple multiplexer code in vhdl generates error:

library IEEE;
use IEEE.STD_LOGIC_1164.all;

entity MuxCG is
  port (Sel: in std_logic_vector(0 to 1);
  A, B, C, D: in std_logic_vector(0 to 3);
  Y:  out std_logic_vector(0 to 3));
end MuxCG;

architecture MuxCGArch of MuxCG is
  Y <= A when Sel = "00" else
       B when Sel = "01" else
       C when Sel = "10" else
       D when others;
end MuxCGArch;

Error (10500): VHDL syntax error at MuxCG.vhd(15) near text “others”;  expecting “(“, or an identifier (“others” is a reserved keyword), or  unary operator

Still cannot fix this.