Addressing 23017/4051 using I2C Serial Interface & PROGMEM

The tronixstuff post uses just the wire library, I'll try later to do it using just wire.h like Grummy_Mike does in his midifootsteps controller. Does the MCP23017 have internal pull up resistors?

i2c pullup resistors strictly needed?

So I'm laying out a circuit for an atmega328 and a mcp23017, which is an i2c port expander. If it is just the two components and then downstream (from the port expander) connections, are pullups strictly needed on the i2c lines? Nothing else on the i2c bus except the 328 and the mcp23017. Does the 328 have internal pullups on the i2c bus pins? I'm asking because I just send off a board design for prototypes and had a doh forehead slap moment when I noticed I'd left off the 4k7 pullups on the i2c bus. I'll greenwire up some pullups if they're absolutly needed for these prototypes, but was just wondering if the i2c comms would work well enough without them on there. I've already added them to the schematic and reworked the layout and will be sending off for another set of prototypes, but was just curious.

Thanks.

Please note that in my sketch the arduino pre-scaler is modified for drum rolls would that have a direct affect on the i2c bus ?

The internal pullups are a much higher resistance and won't work well at high speeds.

http://forums.adafruit.com/viewtopic.php?f=8&t=27328
so they do have internal pull ups? Again I ask this question because with external resistors wired in place my Knight rider example does not work. without them the example works.
note that in midi footsteps the polarity is reversed on the i/o pins :0