Although CopyPixels() does not appear to return an error, glReadPixels() does. This is a way to test if there is really a stencil buffer. If you asked for a stencil buffer and this says there isn't one, you know your display is corrupt and not working - so you can go to a different mode/window.
Repeat Until glGetError()=GL_NO_ERROR 'wipe errors Local bb:Int glReadPixels(20,20,1,1,GL_STENCIL_INDEX,GL_UNSIGNED_BYTE,Varptr(bb)) If glGetError()<>GL_NO_ERROR Then Print "Error reading from stencil buffer, we cab tell there is no stencil buffer!" Else Print "No error - we can tell there must be a stencil buffer!"