error checking is crucial, i dont see that in your code
https://sites.google.com/site/john87connor/other/error-check

having a GL debug context can help you much more because instead of simple...