Initialization fail on ethernet shield R3 accessing SD

I am using arduino IDE 1.0.
Ethernet Sheild R3
Arduino: Duemilanove
SD card FAT file system formated on a mac
I am using the SD library.

I need to read the SD in setup. Then use the values to initialize the ethernet.

Any and all suggestions accepted.

The SD initialization always fails. I have tried the examples that only touch pin 10:

pinMode(10, OUTPUT);

But most references say to set pins 10 and 4 together.

I added delays just because of the failure.

I had the various values hardcoded. I am going to have 2-3 of these on the network and would rather have the parameters read from the SD card than have 2-3 copies of the code.

void setup()
{
  // start the Ethernet connection 
  Serial.begin(9600);
  delay(3000);
   pinMode(10, OUTPUT);
  digitalWrite(10, HIGH); 
   delay(100);
  pinMode(4, OUTPUT);
  digitalWrite(4, LOW); 
  delay(100);
  if (!SD.begin(4)) {
    Serial.println("initialization failed!");
    return;
  }

If you can't get the SD to work you may be able to store your settings in the built-in EEPROM.

eeprom is not an option.

The questions I have:
Did I write my code wrong?
Is there a bug in the arduino 1.0 libraries? SDI, ethernet, SD
Is there a bug in the ethernet shield?
Are there a issues with not connecting the 4 pins? Yes, I wrapped then in electrical tape to insulate them. Do I need a R3 Uno for the R3 ethernet shield?

I did see a different library used by Adafruit for accessing the SD card.

All good. I formated the SD card wrong.
I placed a fat partition on the card instead of formatting the whole card.

But I did need to mark pin 10 as output and write HIGH to it.