Which texture unit are you using? You may recall that you only have a texture matrix stack for the implementation defined MAX_TEXTURE_UNITS. I’ve been bamboozled by this one before.
I mean that each texture unit has its own matrix stack, and the total number of texture units is implementation defined. You can use glGet*() with MAX_TEXTURE_UNITS to get the number. You can read about this in chapter 2 of the spec, if you’re interested.