Interleaved VBO troubles

So, here’s my problem. I made a static interleaved VBO for my terrain, which worked just fine, as shown in the picture below.

But, when adding color to it, this happens. (Two images, because two things happen).

As shown in those images, a massive red anomaly shows up, as well as half of one of the walls are gone. I am wondering why this is happening, since I am suspisious that the draw code is the culprit, I’m posting the code in which the anomaly shows up, as well as when it doesn’t.

Draw Code With Anomaly:


int stride = 12 * (Float.SIZE / Byte.SIZE);
glPushMatrix();
    glBindBuffer(GL_ARRAY_BUFFER, vboID);
    glEnableClientState(GL_VERTEX_ARRAY);
    glEnableClientState(GL_TEXTURE_COORD_ARRAY);
    glEnableClientState(GL_NORMAL_ARRAY);
    glEnableClientState(GL_COLOR_ARRAY);
        glVertexPointer(3, GL_FLOAT, stride, 0L);
        glNormalPointer(GL_FLOAT, stride, (Float.SIZE / Byte.SIZE) * 3);
        glTexCoordPointer(2, GL_FLOAT, stride, (Float.SIZE / Byte.SIZE) * 6);
        glColorPointer(4, GL_FLOAT, stride, (Float.SIZE / Byte.SIZE) * 9);
	glDrawArrays(GL_TRIANGLES, 0, vertexLen);
    glDisableClientState(GL_COLOR_ARRAY);
    glDisableClientState(GL_NORMAL_ARRAY);
    glDisableClientState(GL_TEXTURE_COORD_ARRAY);
    glDisableClientState(GL_VERTEX_ARRAY);
    glBindBuffer(GL_ARRAY_BUFFER, 0);
glPopMatrix();

Draw Code without Anomaly:


int stride = 8 * (Float.SIZE / Byte.SIZE);
glPushMatrix();
    glBindBuffer(GL_ARRAY_BUFFER, vboID);
    glEnableClientState(GL_VERTEX_ARRAY);
    glEnableClientState(GL_TEXTURE_COORD_ARRAY);
    glEnableClientState(GL_NORMAL_ARRAY);
        glVertexPointer(3, GL_FLOAT, stride, 0L);
        glNormalPointer(GL_FLOAT, stride, (Float.SIZE / Byte.SIZE) * 3);
        glTexCoordPointer(2, GL_FLOAT, stride, (Float.SIZE / Byte.SIZE) * 6);
        glDrawArrays(GL_TRIANGLES, 0, vertexLen);
    glDisableClientState(GL_NORMAL_ARRAY);
    glDisableClientState(GL_TEXTURE_COORD_ARRAY);
    glDisableClientState(GL_VERTEX_ARRAY);
    glBindBuffer(GL_ARRAY_BUFFER, 0);
glPopMatrix();