         // Complete render
         glfwSwapBuffers(current->pWindow);
         glfwPollEvents();
+
+        ForceCheckGL("In Draw");
     }
 
     void CopyArrayToPBO(const Array<float> &X)


    void MakeContextCurrent(WindowHandle wh)
    {
        if (wh != NULL)
        {
            glfwMakeContextCurrent(wh->pWindow);
            current = wh;
        }
    }

    void Draw()
    {
        // Safety check
        //MakeContextCurrent(current);

        // load texture from PBO
        glBindTexture(GL_TEXTURE_2D, current->gl_Tex);

    static unsigned int g_uiWindowCounter = 0;

    static std::vector<WindowHandle> windows;
    static std::vector<int> closedWindows;

    static WindowHandle current = NULL;

    // Print for OpenGL errors
    // Returns 1 if an OpenGL error occurred, 0 otherwise.

    #define CheckGL(msg)      glErrorCheck     (msg, __FILE__, __LINE__)
    #define ForceCheckGL(msg) glForceErrorCheck(msg, __FILE__, __LINE__)
    #define CheckGLSkip(msg)  glErrorSkip      (msg, __FILE__, __LINE__)

    inline void glErrorSkip(const char *msg, const char* file, int line)
    {
        GLenum x = glGetError();
    }

    inline GLenum glErrorCheck(const char *msg, const char* file, int line)
    {
    // Skipped in release mode
    #ifndef NDEBUG
        GLenum x = glGetError();

        if (x != GL_NO_ERROR) {
            printf("GL Error at: %s:%d Message: %s Error Code: %d \"%s\"\n", file, line, msg, x, gluErrorString(x));
        }
        return x;
    #endif
    }

    inline GLenum glForceErrorCheck(const char *msg, const char* file, int line)
    {
        GLenum x = glGetError();

        if (x != GL_NO_ERROR) {
            printf("GL Error at: %s:%d Message: %s Error Code: %d \"%s\"\n", file, line, msg, x, gluErrorString(x));
        }
        return x;
    }

    // Required to be defined for GLEW MX to work, along with the GLEW_MX define in the perprocessor!
