Workaround for bug 899
Modified: branches/ros-branch-0_2_8/reactos/subsys/win32k/ntuser/class.c

Modified: branches/ros-branch-0_2_8/reactos/subsys/win32k/ntuser/class.c
--- branches/ros-branch-0_2_8/reactos/subsys/win32k/ntuser/class.c	2005-10-12 23:10:31 UTC (rev 18419)
+++ branches/ros-branch-0_2_8/reactos/subsys/win32k/ntuser/class.c	2005-10-13 07:35:19 UTC (rev 18420)
@@ -68,12 +68,21 @@
 VOID FASTCALL DestroyClass(PWNDCLASS_OBJECT Class)
 {
    PWINSTATION_OBJECT WinSta;
-   WinSta = PsGetWin32Thread()->Desktop->WindowStation;
    
    ASSERT(Class->refs == 0);
    RemoveEntryList(&Class->ListEntry);
-   //FIXME: release ATOM
-   RtlDeleteAtomFromAtomTable(WinSta->AtomTable, Class->Atom);
+
+   /* FIXME See bug 899 */
+   if (NULL != PsGetWin32Thread())
+   {
+      WinSta = PsGetWin32Thread()->Desktop->WindowStation;
+      //FIXME: release ATOM
+      RtlDeleteAtomFromAtomTable(WinSta->AtomTable, Class->Atom);
+   }
+   else
+   {
+      DPRINT1("Can't locate window station, see bug 899\n");
+   }
    ExFreePool(Class);
 }