In this function, there are two arrays that are carved out of extraseg: same and colour. What are the maximum indices into these arrays? The same[] array appears to be indexed from 0 to xdots. However, when colour is carved out of extraseg after same, it is done with this code: same = (int far *)MK_FP(extraseg,0); colour = &same[ydots]; This seems to carve out an array for same[] that is ydots long. This is all fine and dandy as long as ydots > xdots, which it is for real video modes, but not necessarily for disk video modes. The same array is only indexed by what looks like an x coordinate, so I think this is a typo and should be xdots and not ydots. I will make this change on the branch; should it be fixed on the HEAD? -- "The Direct3D Graphics Pipeline" -- DirectX 9 draft available for download <http://www.xmission.com/~legalize/book/download/index.html> Legalize Adulthood! <http://blogs.xmission.com/legalize/>