Index: tools/rbuild/configuration.cpp
===================================================================
--- tools/rbuild/configuration.cpp	(revision 31587)
+++ tools/rbuild/configuration.cpp	(working copy)
@@ -28,7 +28,7 @@
 	CheckDependenciesForModuleOnly = false;
 	CompilationUnitsEnabled = true;
 	MakeHandlesInstallDirectories = false;
-	GenerateProxyMakefilesInSourceTree = false;
+	GenerateProxyMakefilesInSourceTree = true;
 	InstallFiles = false;
 	UseConfigurationInPath = false;
 	UseVSVersionInPath = false;
Index: ntoskrnl/include/internal/mm.h
===================================================================
--- ntoskrnl/include/internal/mm.h	(revision 31587)
+++ ntoskrnl/include/internal/mm.h	(working copy)
@@ -103,7 +103,7 @@
 /*
  * Maximum size of the kmalloc area (this is totally arbitary)
  */
-#define MM_KERNEL_MAP_SIZE                  (16*1024*1024)
+#define MM_KERNEL_MAP_SIZE                  (64*1024*1024)
 #define MM_KERNEL_MAP_BASE                  (0xf0c00000)
 
 /*
Index: ntoskrnl/mm/rpoolmgr.h
===================================================================
--- ntoskrnl/mm/rpoolmgr.h	(revision 31587)
+++ ntoskrnl/mm/rpoolmgr.h	(working copy)
@@ -32,7 +32,7 @@
 
 #ifndef R_QUECOUNT
 // 16, 32, 64, 128, 256, 512
-#define R_QUECOUNT 6
+#define R_QUECOUNT 512
 #endif//R_QUECOUNT
 
 #ifndef R_RZ
@@ -50,7 +50,7 @@
 
 #ifndef R_STACK
 // R_STACK is the number of stack entries to store in blocks for debug purposes
-#define R_STACK 6
+#define R_STACK 32
 #else // R_STACK
 #if R_STACK > 0 && R_STACK < 6
 /* Increase the frame depth to get a reasonable back trace */
@@ -152,7 +152,7 @@
 }
 #endif//R_STACK
 
-static int
+static rulong
 RQueWhich ( rulong size )
 {
 	rulong que, quesize;
@@ -888,7 +888,7 @@
 	rulong UsedSize;
 	PR_FREE FreeBlock;
 	rulong UserSize;
-	int que;
+	long que;
 
 	ASSERT(pool);
 	if ( !Addr )
Index: base/system/winlogon/screensaver.c
===================================================================
--- base/system/winlogon/screensaver.c	(revision 31587)
+++ base/system/winlogon/screensaver.c	(working copy)
@@ -3,7 +3,7 @@
  * PROJECT:         ReactOS Winlogon
  * FILE:            base/system/winlogon/screensaver.c
  * PURPOSE:         Screen saver management
- * PROGRAMMERS:     Herv��� Poussineau (hpoussin@reactos.org)
+ * PROGRAMMERS:     Herv��� Poussineau (hpoussin@reactos.org)
  */
 
 /* INCLUDES *****************************************************************/
@@ -43,20 +43,30 @@
 	OUT LPDWORD Timeout)
 {
 	BOOL Enabled;
-
+	if(Timeout==NULL)
+	{
+		ERR("TimeOut is NULL!!!");
+		return;	
+	}
 	if (!SystemParametersInfoW(SPI_GETSCREENSAVETIMEOUT, 0, Timeout, 0))
 	{
-		WARN("WL: Unable to get screen saver timeout (error %lu). Disabling it\n", GetLastError());
-		*Timeout = INFINITE;
+		ERR("WL: Unable to get screen saver timeout (error %lu). Disabling it\n", GetLastError());
+		if(Timeout==NULL)
+		{
+			ERR("TimeOut is still NULL!!!");
+			return;	
+		}
+		else
+			*Timeout = INFINITE;
 	}
 	else if (!SystemParametersInfoW(SPI_GETSCREENSAVEACTIVE, 0, &Enabled, 0))
 	{
-		WARN("WL: Unable to check if screen saver is enabled (error %lu). Disabling it\n", GetLastError());
+		ERR("WL: Unable to check if screen saver is enabled (error %lu). Disabling it\n", GetLastError());
 		*Timeout = INFINITE;
 	}
 	else if (!Enabled)
 	{
-		TRACE("WL: Screen saver is disabled\n");
+		ERR("WL: Screen saver is disabled\n");
 		*Timeout = INFINITE;
 	}
 	else
@@ -84,7 +94,7 @@
 	if (!ImpersonateLoggedOnUser(Session->UserToken))
 	{
 		ERR("ImpersonateLoggedOnUser() failed with error %lu\n", GetLastError());
-		return 0;
+		goto cleanup;
 	}
 
 	Session->hUserActivity = CreateEventW(NULL, FALSE, FALSE, NULL);
Index: base/system/winlogon/setup.c
===================================================================
--- base/system/winlogon/setup.c	(revision 31587)
+++ base/system/winlogon/setup.c	(working copy)
@@ -19,13 +19,15 @@
 DWORD
 GetSetupType(VOID)
 {
+	//CONTEXT("GetSetupType");
+	
 	DWORD dwError;
 	HKEY hKey;
 	DWORD dwType;
 	DWORD dwSize;
 	DWORD dwSetupType;
 
-	TRACE("GetSetupType()\n");
+	ERR("GetSetupType()\n");
 
 	/* Open key */
 	dwError = RegOpenKeyExW(
@@ -48,11 +50,12 @@
 		&dwSize);
 
 	/* Close key, and check if returned values are correct */
-	RegCloseKey(hKey);
+	if(dwError==ERROR_SUCCESS)
+		RegCloseKey(hKey);
 	if (dwError != ERROR_SUCCESS || dwType != REG_DWORD || dwSize != sizeof(DWORD))
 		return 0;
 
-	TRACE("GetSetupType() returns %lu\n", dwSetupType);
+	ERR("GetSetupType() returns %lu\n", dwSetupType);
 	return dwSetupType;
 }
 
@@ -71,7 +74,7 @@
 	DWORD dwSize;
 	DWORD dwExitCode;
 
-	TRACE("RunSetup() called\n");
+	ERR("RunSetup() called\n");
 
 	/* Open key */
 	dwError = RegOpenKeyExW(
@@ -107,7 +110,7 @@
 	else
 		return FALSE;
 
-	TRACE("Should run '%s' now\n", debugstr_w(CommandLine));
+	ERR("Should run '%s' now\n", debugstr_w(CommandLine));
 
 	/* Start process */
 	StartupInfo.cb = sizeof(StartupInfo);
@@ -130,7 +133,7 @@
 		&ProcessInformation);
 	if (!Result)
 	{
-		TRACE("Failed to run setup process\n");
+		ERR("Failed to run setup process\n");
 		return FALSE;
 	}
 
@@ -143,7 +146,7 @@
 	CloseHandle(ProcessInformation.hThread);
 	CloseHandle(ProcessInformation.hProcess);
 
-	TRACE ("RunSetup() done\n");
+	ERR ("RunSetup() done\n");
 
 	return TRUE;
 }
Index: dll/win32/newdev/newdev.c
===================================================================
--- dll/win32/newdev/newdev.c	(revision 31587)
+++ dll/win32/newdev/newdev.c	(working copy)
@@ -1,7 +1,7 @@
 /*
  * New device installer (newdev.dll)
  *
- * Copyright 2005-2006 Herv��� Poussineau (hpoussin@reactos.org)
+ * Copyright 2005-2006 Herv��� Poussineau (hpoussin@reactos.org)
  *           2005 Christoph von Wittich (Christoph@ActiveVB.de)
  *
  * This library is free software; you can redistribute it and/or
@@ -718,7 +718,7 @@
 	{
 		TRACE("SetupDiGetDeviceRegistryProperty() failed with error 0x%x (InstanceId %s)\n",
 			GetLastError(), debugstr_w(InstanceId));
-		goto cleanup;
+		//goto cleanup;
 	}
 
 	if (SetupDiGetDeviceRegistryPropertyW(
Index: dll/win32/gdi32/objects/dc.c
===================================================================
--- dll/win32/gdi32/objects/dc.c	(revision 31587)
+++ dll/win32/gdi32/objects/dc.c	(working copy)
@@ -58,12 +58,12 @@
                       hspool,
                      (PVOID) NULL,       // NULL for now.
                      (PVOID) &UMdhpdev );
-#if 0
+#if 1
 // Handle something other than a normal dc object.
  if (GDI_HANDLE_GET_TYPE(hDC) != GDI_OBJECT_TYPE_DC)
  {
-    PDC_ATTR Dc_Attr;
-    PLDC pLDC;
+    PDC_ATTR Dc_Attr=NULL;
+    PLDC pLDC=NULL;
 
     GdiGetHandleUserData((HGDIOBJ) hDC, GDI_OBJECT_TYPE_DC, (PVOID) &Dc_Attr);
 
@@ -254,7 +254,7 @@
 DeleteDC(HDC hDC)
 {
   BOOL Ret = TRUE;
-#if 0
+#if 1
   PDC_ATTR Dc_Attr;
   PLDC pLDC;
 
@@ -1342,9 +1342,9 @@
 SelectObject(HDC hDC,
              HGDIOBJ hGdiObj)
 {
-    PDC_ATTR pDc_Attr;
-//    HGDIOBJ hOldObj = NULL;
-//    PTEB pTeb;
+    PDC_ATTR pDc_Attr=NULL;
+    HGDIOBJ hOldObj = NULL;
+    //PTEB pTeb=NULL;
 
     if(!GdiGetHandleUserData(hDC, GDI_OBJECT_TYPE_DC, (PVOID)&pDc_Attr))
     {
@@ -1355,9 +1355,10 @@
     hGdiObj = GdiFixUpHandle(hGdiObj);
     if (!GdiIsHandleValid(hGdiObj))
     {
+    	DPRINT1("SelectObject:Handle not valid");
         return NULL;
     }
-
+	
     UINT uType = GDI_HANDLE_GET_TYPE(hGdiObj);
 
     switch (uType)
@@ -1369,28 +1370,39 @@
             return NtGdiSelectBitmap(hDC, hGdiObj);
 
         case GDI_OBJECT_TYPE_BRUSH:
-#if 0 // enable this when support is ready in win32k
-            hOldObj = pDc_Attr->hbrush;
-            pDc_Attr->ulDirty_ |= DC_BRUSH_DIRTY;
-            pDc_Attr->hbrush = hGdiObj;
+#if 1 // enable this when support is ready in win32k
+			if(pDc_Attr)
+			{
+				DPRINT1("SelectObject:Selectng brush & returning old brush");
+            	hOldObj = pDc_Attr->hbrush;
+            	pDc_Attr->ulDirty_ |= DC_BRUSH_DIRTY;
+            	pDc_Attr->hbrush = hGdiObj;
+			}
+			NtGdiSelectBrush(hDC, hGdiObj);
             return hOldObj;
 #endif
-            return NtGdiSelectBrush(hDC, hGdiObj);
+            
 
         case GDI_OBJECT_TYPE_PEN:
 //        case GDI_OBJECT_TYPE_EXTPEN:
-#if 0 // enable this when support is ready in win32k
-            hOldObj = pDc_Attr->hpen;
-            pDc_Attr->ulDirty_ |= DC_PEN_DIRTY;
-            pDc_Attr->hpen = hGdiObj;
+#if 1 // enable this when support is ready in win32k
+			if(pDc_Attr)
+			{
+				DPRINT1("SelectObject:Selectng pen & returning old pen");
+            	hOldObj = pDc_Attr->hpen;
+            	pDc_Attr->ulDirty_ |= DC_PEN_DIRTY;
+            	pDc_Attr->hpen = hGdiObj;
+			}
+			NtGdiSelectPen(hDC, hGdiObj);
             return hOldObj;
 #endif
-            return NtGdiSelectPen(hDC, hGdiObj);
+            
 
         case GDI_OBJECT_TYPE_FONT:
 #if 0
             pTeb = NtCurrentTeb();
-            if (((pTeb->GdiTebBatch.HDC == 0) ||
+            
+            if (pTeb!=NULL && ((pTeb->GdiTebBatch.HDC == 0) ||
                  (pTeb->GdiTebBatch.HDC == (ULONG)hDC)) &&
                 ((pTeb->GdiTebBatch.Offset + sizeof(GDIBSOBJECT)) <= GDIBATCHBUFSIZE) &&
                (!(pDc_Attr->ulDirty_ & DC_DIBSECTION)))
Index: dll/win32/gdi32/misc/misc.c
===================================================================
--- dll/win32/gdi32/misc/misc.c	(revision 31587)
+++ dll/win32/gdi32/misc/misc.c	(working copy)
@@ -129,18 +129,23 @@
     // Need to test if we have Read & Write access to the VM address space.
     //
       BOOL Result = TRUE;
-      if(Entry->UserData)
+      if(Entry && Entry->UserData)
       {
          volatile CHAR *Current = (volatile CHAR*)Entry->UserData;
-         _SEH_TRY
+         if(Current==NULL)
+         	Result=FALSE;
+         else
          {
-           *Current = *Current;
+         	_SEH_TRY
+         	{
+           	*Current = *Current;
+         	}
+         	_SEH_HANDLE
+         	{
+           	Result = FALSE;
+         	}
+         	_SEH_END
          }
-         _SEH_HANDLE
-         {
-           Result = FALSE;
-         }
-         _SEH_END
       }
        else
          Result = FALSE; // Can not be zero.
