UNO + Ethernet + LCD + Serial = hang.

Looking for some advice here on why using Serial.print( foo ); seems to make my UNO restart. While putting together a server that displays messages on my HD44780-compatible 20x4 LCD I was in the needed of some debugging output so I decided to use the serial port but it failed to work.

Some details about my configuration.

#include <SPI.h>
#include <Ethernet.h>
#include <LiquidCrystal.h>
LiquidCrystal lcd(8, 9, 3, 5, 6, 7);

void setup(){
  //Serial comms disabled
  //Serial.begin(9600);
  //Some feedback to know we have at least reached setup().
  //Serial.print( "Setup!" ); 
  lcd.begin(20,4);
  lcd.clear();
  WebServerSetup();
}

Now when I reset my device I get my setup text in the serial monitor without issue. However, I put some Serial.print() lines in my loop to show the data coming in but as soon as it does I get another “Setup!” in the serial monitor suggesting my device restarted. AFAICT I’m not having any pin conflicts since my ethernet shield is on pins 13,12,11,10 and 4 is free for the SD and my LCD is on pins 9,8,7,6,5 and 3.

My question is this, are there library conflicts or does this sound like a resource limitation issue?