With GL_TEXTURE_2D you can only load textures with the size 2^n, like 1x1, 2x2, 4x4, 8x8, 16x16, 32x32, 64x64, 128x128, 256x256, 512x512, ...
If you want to use textures with other sizes use something like GL_TEXTURE_RECTANGLE_ARB.
You first have to call glEnable with ARBTextureRectangle.GL_TEXTURE_RECTANGLE_ARB and then use ARBTextureRectangle.GL_TEXTURE_RECTANGLE_ARB instead of GL_TEXTURE_2D in all the other methods.
WiESi