Can't set static IP using WIZ811MJ Ethernet module (dynamic works)

I’ve got a WIZ811MJ Ethernet module. I can start the Ethernet client just fine using

Ethernet.begin(mac);

But this uses a lot of memory, I want to set a static IP

Ethernet.begin(mac, ip);

But it doesn’t work, I Just get back 0,0,0,0 when I print the IP address.

The WIZ811MJ is connected to a Moteino. A Moteino is Uno compatible, ATMega328P, plus it has a transceiver radio.

Here’s my test code

#include <SPI.h>
#include <Ethernet.h>  // Modified by SurferTim to allow user selectable SS pin, see bit.ly/1nvz2ye

byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xEC };
IPAddress ip( 192, 168,  46, 137 );

void setup() {
  Serial.begin(9600);
  Ethernet.select(9);  // Moteino radio uses D10 for SS
  Ethernet.begin(mac, ip);
  Serial.println(Ethernet.localIP());
}

void loop() { }

I forgot to mention. I tried using the same IP as the one dynamically given, and other unused IPs on the same LAN. I've tested it in two different locations. There's nothing unusual about my default gateway or subnet.