CreateSurface problem

I've got a problem with a strcuture being overwritten during a CreateSurface call. I have a structure containing 6 elements (all DWORD types) which is then used to create an array of that structure of 50 elements declared in CMyApplication.
In CMyApplication::InitInstance I call a function to populate the array of structures with all the startup data that I need and at this point everything is fine. But in CMyApplication::CreateSysMemSurfaces when I create my various surfaces the last 4 elements of the last item in the array have there values overwritten. I create three surfaces in this section and it's not always the same CreateSurface call that causes the problem.
Any idea's what going wrong?, I'm using GapiDraw v3.0.
Thanks
Eric.
In CMyApplication::InitInstance I call a function to populate the array of structures with all the startup data that I need and at this point everything is fine. But in CMyApplication::CreateSysMemSurfaces when I create my various surfaces the last 4 elements of the last item in the array have there values overwritten. I create three surfaces in this section and it's not always the same CreateSurface call that causes the problem.
Any idea's what going wrong?, I'm using GapiDraw v3.0.
Thanks
Eric.