Hi all. We have a win32 application linked to Far Point's Spread32 library; the application crashes when referencing a NULL pointer returned by GlobalLock, but obviously it runs perfectly under win98SE (see previous post about GetWindowLongA) . The behaviour of SCROLL_GetPtrScrollInfo, with nBar parameter = SB_CTL, is to return wndPtr->wExtra as it were a pointer. Actually we found that, in this case, the application stores in wndPtr->wExtra[0] a handle; so, tricking with wine's code, we obtained the pointer from the handle (using GlobalLock), making the app working (almost) correctly. Before releasing a patch, we would like to hear some suggestion about it (I mean: the current code isn't correct, but will all of others apps work correctly after our fix?) Our version of SCROLL_GetPtrScrollInfo looks like this: [ controls/scroll.c ]: 126 /*********************************************************************** 127 * SCROLL_GetPtrScrollInfo 128 */ 129 static SCROLLBAR_INFO *SCROLL_GetPtrScrollInfo( WND* wndPtr, INT nBar ) 130 { 131 SCROLLBAR_INFO *infoPtr; 132 HGLOBAL hmem; 133 if (!wndPtr) return NULL; 134 switch(nBar) 135 { 136 case SB_HORZ: infoPtr = (SCROLLBAR_INFO *)wndPtr->pHScroll; break; 137 case SB_VERT: infoPtr = (SCROLLBAR_INFO *)wndPtr->pVScroll; break; 138 /* -- OLD VERSION -- case SB_CTL: infoPtr = (SCROLLBAR_INFO *)wndPtr->wExtra; break; */ 139 case SB_CTL: 140 hmem = (HGLOBAL) wndPtr->wExtra[0]; 141 infoPtr = GlobalLock(hmem); 142 GlobalUnlock(hmem); 143 break; Any help would be appreciated. Thx