diff --git a/misc/shell.c b/misc/shell.c
index 933f348b44d9733dac3670e175ae9db7e9a24445..9c739b8f7231a95eb4f724801a332149e5bc9909 100644
--- a/misc/shell.c
+++ b/misc/shell.c
@@ -14,10 +14,10 @@
 #include "winerror.h"
 #include "file.h"
 #include "heap.h"
+#include "ldt.h"
 #include "module.h"
 #include "neexe.h"
 #include "dlgs.h"
-#include "win.h"
 #include "cursoricon.h"
 #include "sysmetrics.h"
 #include "shellapi.h"
@@ -67,11 +67,15 @@ static UINT16	uMsgShellActivate = 0;
  */
 void WINAPI DragAcceptFiles(HWND hWnd, BOOL b)
 {
-  WND* wnd = WIN_FindWndPtr(hWnd);
+  LONG exstyle;
   
-  if( wnd )
-    wnd->dwExStyle = b? wnd->dwExStyle | WS_EX_ACCEPTFILES
-                      : wnd->dwExStyle & ~WS_EX_ACCEPTFILES;
+  
+  if( !IsWindow(hWnd) )
+  	return;
+  exstyle = GetWindowLongA(hWnd,GWL_EXSTYLE);
+  if (b)exstyle |= WS_EX_ACCEPTFILES;
+  else	exstyle &= ~WS_EX_ACCEPTFILES;
+  SetWindowLongA(hWnd,GWL_EXSTYLE,exstyle);
 }
 
 /*************************************************************************