SPI duemilanove vs uno

I have written a software for arduino which uses spi.
it works on duemilanove and also on different clones. unfortunately not on the new androino uno board.

when reading out the spi it hangs

unsigned char spi_transfer() {
  while (!(SPSR & (1<<SPIF))); <---- hangs
  return SPDR;

any idea?

I’m using adruino 0021.

problem solved:

changed pulldown res form 2.2 k to 1 k

Is SPI supposed to involved pull-down resistors? (which signal's PD did you change?)

SPI doesn't use pull-downs or pull-ups, well not normally. The only line that can conflict is the MISO and slaves should tristate that one unless their CS line is active.

Is this a multi-master setup?

[edited for typo]