the crash went away -- it's not clear that it went away for any reason besides by accident. The change is: use calloc instead of malloc for allocating SCREENs.