When you say you have to use guarded blocks, do you really have to? Its something that I have never ever used, and never ever seen used. Even in my doulos golden reference guide (which I, and many others, use as my most important VHDL reference) says
--- Quote Start ---
Synthesis: "Most commercial synthesis tools do not support blocks. Use processes instead"
Tips: "It is not necessary to learn and use blocks and related syntax suych as guarded signal assignments. It is generally more efficent for simulation to use processes instead."
--- Quote End ---
From what I understand from my reference, and looking at your code, you should be writing:
Y(N) <= guarded entry;
But I am probably wrong, and I dont think you'll be able to get much help on this forum.