Arduino Due with Ethernetshield

Dear all,
I am working on a Webserver project involving an Arduino Due with Ethernet and SD card. I used examples from various other persons, including Webduinomaster.
There seems to be a probleem addressing the ehternetchip and the SD card when using the DUE. on the Arduino 2560, it works fine.

If I run the code below om the Mega2560, I get very nice lisitngs from the SD and the IP address of the shield. While running on the Due, I still get the nice listing, but the IP address now is 255.255.255.255. Unless I quote the entire SD card section, then I get the correct IP address.

What am I doing wrong?

#include <SPI.h>
#include <SdFat.h>
#include <SdFatUtil.h>
#include <Ethernet.h>
#include <Wire.h>
#include <itoa.h>
#include "WebServer.h"
#include "bmp085.h"
/************ ETHERNET STUFF ************/
byte mac[] = { 
  0x90, 0xA2, 0xDA, 0x00, 0x3C, 0xDF };
byte ip[] = { 
  192, 168, 0, 220};
byte gateway[] = { 
  192, 168, 0, 1 };
byte subnet[] = { 
  255, 255, 255, 0 };


Sd2Card card;
SdVolume volume;
SdFile root;
SdFile file;


//******************* SETUP
void setup() {
  Serial.begin(115200);
  PgmPrint("Free RAM: ");
  Serial.println(FreeRam());  

//  pinMode(10, OUTPUT);                       // set the SS pin as an output (necessary!)
//  digitalWrite(10, HIGH);                    // but turn off the W5100 chip!
//  pinMode(4, OUTPUT);                       // set the SS pin as an output (necessary!)
//  digitalWrite(4, HIGH);                    // but turn off the SD card chip!



//   if (!card.init(SPI_SIXTEENTH_SPEED, 4)) error("card.init failed!");
//  if (!card.init(SPI_EIGHTH_SPEED, 4)) error("card.init failed!");
//  if (!card.init(SPI_QUARTER_SPEED, 4)) error("card.init failed!");

  if (!card.init(SPI_DIV6_SPEED,4)) Serial.println("card.init failed!");

  // initialize a FAT volume
  if (!volume.init(&card)) Serial.println("vol.init failed!");

  PgmPrint("Volume is FAT");
  Serial.println(volume.fatType(),DEC);
  Serial.println();

  if (!root.openRoot(&volume)) Serial.println("openRoot failed");

  // list file in root with date and size
  PgmPrintln("Files found in root:");
  root.ls(LS_DATE | LS_SIZE);
  Serial.println();

  // Recursive list of all directories
  PgmPrintln("Files found in all dirs:");
  root.ls(LS_R);

  Serial.println();
  PgmPrintln("Done");


  Serial.println("going to connect");
  // Debugging complete, we start the server!
  //  Ethernet.begin(mac, ip);
  Ethernet.begin(mac, ip, gateway, subnet);
  Serial.print("Ethernet connected "); Serial.println(Ethernet.localIP());
}
//***************** LOOP ***************************************

void loop()
{}