If the connection fails or the server stalls, the client code will lock up unless you have a timeout in your client code. Here is my client code with the timeout. Look through the code for the loopCount variable.
http://playground.arduino.cc/Code/WebClient
If you have a SD card in the shield's slot, remove it.