I have a FIFO which has an interface that looks something like this:
entity fifo is port ( CLK : IN std_logic := \'0\'; DIN
Use BUFFER instead of out. Then you can read without the intermediate signal used in Charles' solution.