Made access to the wnd struct thread-safe.

diff --git a/windows/scroll.c b/windows/scroll.c
index c54b49d..bba77af 100644
--- a/windows/scroll.c
+++ b/windows/scroll.c
@@ -236,7 +236,11 @@
     RECT rc, cliprc;
     WND*   wnd = WIN_FindWndPtr( hwnd );
 
-    if( !wnd || !WIN_IsWindowDrawable( wnd, TRUE )) return ERROR;
+    if( !wnd || !WIN_IsWindowDrawable( wnd, TRUE ))
+    {
+        retVal = ERROR;
+        goto END;
+    }
 
     GetClientRect(hwnd, &rc);
     if (rect) IntersectRect(&rc, &rc, rect);
@@ -307,7 +311,7 @@
 	{
 	    RECT	r;
 	    WND* 	w;
-	    for( w = wnd->child; w; w = w->next )
+	    for( w =WIN_LockWndPtr(wnd->child); w; WIN_UpdateWndPtr(&w, w->next))
 	    {
 		 CONV_RECT16TO32( &w->rectWindow, &r );
 	         if( IntersectRect(&r, &r, &rc) )
@@ -332,5 +336,7 @@
 	DeleteObject( hrgnClip );
         DeleteObject( hrgnTemp );
     }
+END:
+    WIN_ReleaseWndPtr(wnd);
     return retVal;
 }