This crash was discovered by Dalai and this happened because of unset current context (as result of call wglMakeCurrent(NULL, NULL)). In this case glGetString(GL_VENDOR) returns NULL. Rather than add check for vendor != NULL before string comparison, I've changed a bit logic of context creation: - Create context and set it as current - If it's crappy Intel card -- delete this context and share the only one context between all Windows - Otherwise, use initial logic (with sharing lists and so on) This could also fix crash when opening userprefs from a menu with Intel card.