I've built up a sensor collection system out of 4 teensy 3.1's and about 20 data sources. It's been working great collecting, parsing and storing data on the SD card, I'm using the wiz820/sd card adaptor, so I figured it was time I started using the Ethernet port to serve up the files I create, and that's where my trouble started. When I try and compile the "web server with SD" example using ethernetV2_0 I get the following errors:

C:\Program Files (x86)\Arduino\libraries\EthernetV2_0\utility\w5200 .cpp: In member function 'void W5100Class::read_data(SOCKET, volatile uint8_t*, volatile uint8_t*, uint16_t)':
C:\Program Files (x86)\Arduino\libraries\EthernetV2_0\utility\w5200 .cpp:129:24: error: cast from 'volatile uint8_t* {aka volatile unsigned char*}' to 'uint16_t {aka short unsigned int}' loses precision [-fpermissive]

If I use the standard Ethernet library, compiling the webserver example I get this error:

In file included from C:\Program Files (x86)\Arduino\libraries\Ethernet\utility\socket.cp p:1:0:
C:\Program Files (x86)\Arduino\libraries\Ethernet\utility\w5100.h:1 51:8: error: initializing argument 2 of 'void W5100Class::read_data(SOCKET, volatile uint8_t*, volatile uint8_t*, uint16_t)' [-fpermissive]

I'm sure there's something big and stupid I'm missing here, and I don't think that changing the .cpp and header files is the right answer since most people don't seem to have these types of issues.

Any guidance would be appreciated.