diff --git a/drivers/base/bootvid/i386/bootvid.c b/drivers/base/bootvid/i386/bootvid.c
index 333e5de4fa..6407bc0e9e 100644
--- a/drivers/base/bootvid/i386/bootvid.c
+++ b/drivers/base/bootvid/i386/bootvid.c
@@ -2,7 +2,7 @@
 
 #include <ntifs.h>
 #include <ndk/halfuncs.h>
-
+#include <debug.h>
 /* PRIVATE FUNCTIONS *********************************************************/
 
 static BOOLEAN
@@ -385,6 +385,7 @@ VidInitialize(IN BOOLEAN SetMode)
                                           TRUE);
     if (!Result) return FALSE;
 
+    DPRINT1("Loop trying to find possible VGA base addresses\n");
     /* Loop trying to find possible VGA base addresses */
     while (TRUE)
     {
@@ -404,6 +405,7 @@ VidInitialize(IN BOOLEAN SetMode)
         VgaRegisterBase = Base;
         if (VgaIsPresent())
         {
+            DPRINT1("It is VGA. Translate the VGA Memory Address\n");
             /* Translate the VGA Memory Address */
             VgaAddress.LowPart = 0xA0000;
             VgaAddress.HighPart = 0;
@@ -425,8 +427,10 @@ VidInitialize(IN BOOLEAN SetMode)
         }
         else
         {
+            DPRINT1("It is not VGA\n");
             /* It's not, so unmap the I/O space if we mapped it */
             if (!AddressSpace) MmUnmapIoSpace((PVOID)VgaRegisterBase, 0x400);
+            return FALSE; //HACK! Exit to avoid infinite loop
         }
     }
 
diff --git a/ntoskrnl/ex/init.c b/ntoskrnl/ex/init.c
index e2413349ca..4f9d16e838 100644
--- a/ntoskrnl/ex/init.c
+++ b/ntoskrnl/ex/init.c
@@ -1351,7 +1351,8 @@ Phase1InitializationDiscard(IN PVOID Context)
     OBJECT_ATTRIBUTES ObjectAttributes;
     HANDLE KeyHandle, OptionHandle;
     PRTL_USER_PROCESS_PARAMETERS ProcessParameters = NULL;
-
+    
+    DPRINT1("Allocate the initialization buffer\n");
     /* Allocate the initialization buffer */
     InitBuffer = ExAllocatePoolWithTag(NonPagedPool,
                                        sizeof(INIT_BUFFER),
@@ -1368,6 +1369,7 @@ Phase1InitializationDiscard(IN PVOID Context)
     /* Set us at maximum priority */
     KeSetPriorityThread(KeGetCurrentThread(), HIGH_PRIORITY);
 
+    DPRINT1("Do Phase 1 HAL Initialization\n");
     /* Do Phase 1 HAL Initialization */
     if (!HalInitSystem(1, LoaderBlock)) KeBugCheck(HAL1_INITIALIZATION_FAILED);
 
@@ -1380,8 +1382,10 @@ Phase1InitializationDiscard(IN PVOID Context)
     /* Get the SOS setting */
     SosEnabled = (CommandLine && strstr(CommandLine, "SOS") != NULL);
 
+    DPRINT1("Setup the boot driver\n");
     /* Setup the boot driver */
     InbvEnableBootDriver(!NoGuiBoot);
+    DPRINT1("Call InbvDriverInitialize\n");
     InbvDriverInitialize(LoaderBlock, IDB_MAX_RESOURCE);
 
     /* Check if GUI boot is enabled */
@@ -1497,6 +1501,7 @@ Phase1InitializationDiscard(IN PVOID Context)
     /* Display the version string on-screen */
     InbvDisplayString(EndBuffer);
 
+    DPRINT1("Initialize Power Subsystem in Phase 0\n");
     /* Initialize Power Subsystem in Phase 0 */
     if (!PoInitSystem(0)) KeBugCheck(INTERNAL_POWER_ERROR);
 
@@ -1550,7 +1555,7 @@ Phase1InitializationDiscard(IN PVOID Context)
         KeBootTime = UniversalBootTime;
         KeBootTimeBias = 0;
     }
-
+    DPRINT1("Initialize all processors\n");
     /* Initialize all processors */
     if (!HalAllProcessorsStarted()) KeBugCheck(HAL1_INITIALIZATION_FAILED);
 
@@ -1605,15 +1610,19 @@ Phase1InitializationDiscard(IN PVOID Context)
     /* Update the progress bar */
     InbvUpdateProgressBar(5);
 
+    DPRINT1("Call OB initialization again\n");
     /* Call OB initialization again */
     if (!ObInitSystem()) KeBugCheck(OBJECT1_INITIALIZATION_FAILED);
 
+    DPRINT1("Initialize Basic System Objects and Worker Threads\n");
     /* Initialize Basic System Objects and Worker Threads */
     if (!ExInitSystem()) KeBugCheckEx(PHASE1_INITIALIZATION_FAILED, 0, 0, 1, 0);
 
+    DPRINT1("Initialize the later stages of the kernel\n");
     /* Initialize the later stages of the kernel */
     if (!KeInitSystem()) KeBugCheckEx(PHASE1_INITIALIZATION_FAILED, 0, 0, 2, 0);
 
+    DPRINT1("Call KD Providers at Phase 1\n");
     /* Call KD Providers at Phase 1 */
     if (!KdInitSystem(ExpInitializationPhase, KeLoaderBlock))
     {
@@ -1621,12 +1630,14 @@ Phase1InitializationDiscard(IN PVOID Context)
         KeBugCheckEx(PHASE1_INITIALIZATION_FAILED, 0, 0, 3, 0);
     }
 
+    DPRINT1("Initialize the SRM in Phase 1\n");
     /* Initialize the SRM in Phase 1 */
     if (!SeInitSystem()) KeBugCheck(SECURITY1_INITIALIZATION_FAILED);
 
     /* Update the progress bar */
     InbvUpdateProgressBar(10);
 
+    DPRINT1("Create SystemRoot Link\n");
     /* Create SystemRoot Link */
     Status = ExpCreateSystemRootLink(LoaderBlock);
     if (!NT_SUCCESS(Status))
@@ -1634,7 +1645,7 @@ Phase1InitializationDiscard(IN PVOID Context)
         /* Failed to create the system root link */
         KeBugCheckEx(SYMBOLIC_INITIALIZATION_FAILED, Status, 0, 0, 0);
     }
-
+    DPRINT1("Set up Region Maps, Sections and the Paging File\n");
     /* Set up Region Maps, Sections and the Paging File */
     if (!MmInitSystem(1, LoaderBlock)) KeBugCheck(MEMORY1_INITIALIZATION_FAILED);
 
diff --git a/ntoskrnl/inbv/inbv.c b/ntoskrnl/inbv/inbv.c
index cb6af3e4bf..3a1f3b7be9 100644
--- a/ntoskrnl/inbv/inbv.c
+++ b/ntoskrnl/inbv/inbv.c
@@ -296,6 +296,7 @@ InbvDriverInitialize(IN PLOADER_PARAMETER_BLOCK LoaderBlock,
     }
 
     /* Initialize the video */
+    DPRINT1("Initialize the video\n");
     InbvBootDriverInstalled = VidInitialize(ResetMode);
     if (InbvBootDriverInstalled)
     {
diff --git a/ntoskrnl/ke/i386/kiinit.c b/ntoskrnl/ke/i386/kiinit.c
index c17f4dd1f3..8a6548ff60 100644
--- a/ntoskrnl/ke/i386/kiinit.c
+++ b/ntoskrnl/ke/i386/kiinit.c
@@ -461,11 +461,12 @@ KiInitializeKernel(IN PKPROCESS InitProcess,
     KiSaveProcessorControlState(&Prcb->ProcessorState);
 
     /* Get cache line information for this CPU */
+    DPRINT1("Getting cache info...\n");
     KiGetCacheInformation();
-
+    DPRINT1("Init spinlocks...\n");
     /* Initialize spinlocks and DPC data */
     KiInitSpinLocks(Prcb, Number);
-
+    DPRINT1("Check if this is the Boot CPU\n");
     /* Check if this is the Boot CPU */
     if (!Number)
     {
@@ -510,6 +511,7 @@ KiInitializeKernel(IN PKPROCESS InitProcess,
         KeInitializeSpinLock(&Ki486CompatibilityLock);
 
         /* Initialize portable parts of the OS */
+        DPRINT1("Initialize portable parts of the OS\n");
         KiInitSystem();
 
         /* Initialize the Idle Process and the Process Listhead */
@@ -566,7 +568,8 @@ KiInitializeKernel(IN PKPROCESS InitProcess,
     Prcb->CurrentThread = InitThread;
     Prcb->NextThread = NULL;
     Prcb->IdleThread = InitThread;
-
+    
+    DPRINT1("Initialize the Kernel Executive\n");
     /* Initialize the Kernel Executive */
     ExpInitializeExecutive(Number, LoaderBlock);
 
@@ -598,7 +601,7 @@ KiInitializeKernel(IN PKPROCESS InitProcess,
             KeBugCheckEx(NO_PAGES_AVAILABLE, 2, PAGE_SIZE * 2, 0, 0);
         }
     }
-
+    DPRINT1("Raise to Dispatch\n");
     /* Raise to Dispatch */
     KeRaiseIrql(DISPATCH_LEVEL,
                 &DummyIrql);
@@ -615,6 +618,7 @@ KiInitializeKernel(IN PKPROCESS InitProcess,
     KeRaiseIrql(HIGH_LEVEL,
                 &DummyIrql);
     LoaderBlock->Prcb = 0;
+    DPRINT1("KiInitializeKernel finished\n");
 }
 
 INIT_SECTION
@@ -672,18 +676,18 @@ KiSystemStartupBootStack(VOID)
                        (PKPRCB)__readfsdword(KPCR_PRCB),
                        KeNumberProcessors - 1,
                        KeLoaderBlock);
-
+    
     /* Set the priority of this thread to 0 */
     Thread = KeGetCurrentThread();
     Thread->Priority = 0;
-
+    DPRINT1("Force interrupts enabled and lower IRQL back to DISPATCH_LEVEL\n");
     /* Force interrupts enabled and lower IRQL back to DISPATCH_LEVEL */
     _enable();
     KeLowerIrql(DISPATCH_LEVEL);
 
     /* Set the right wait IRQL */
     Thread->WaitIrql = DISPATCH_LEVEL;
-
+    DPRINT1("Starting Idle loop...\n");
     /* Jump into the idle loop */
     KiIdleLoop();
 }
diff --git a/ntoskrnl/mm/mminit.c b/ntoskrnl/mm/mminit.c
index e0166ee8fb..773032e4a4 100644
--- a/ntoskrnl/mm/mminit.c
+++ b/ntoskrnl/mm/mminit.c
@@ -203,7 +203,7 @@ MmInitSystem(IN ULONG Phase,
     PMMPTE PointerPte;
     MMPTE TempPte = ValidKernelPte;
     PFN_NUMBER PageFrameNumber;
-
+    DPRINT1 ("Initialize the kernel address space\n");
     /* Initialize the kernel address space */
     ASSERT(Phase == 1);
 
@@ -212,10 +212,12 @@ MmInitSystem(IN ULONG Phase,
     KeInitializeEvent(&MmWaitPageEvent, SynchronizationEvent, FALSE);
     // Until we're fully demand paged, we can do things the old way through
     // the balance manager
+    DPRINT1 ("Call MmInitializeMemoryConsumer\n");
     MmInitializeMemoryConsumer(MC_CACHE, MiRosTrimCache);
 
     MmKernelAddressSpace = &PsIdleProcess->Vm;
-
+    
+    DPRINT1 ("Intialize system memory areas\n");
     /* Intialize system memory areas */
     MiInitSystemMemoryAreas();
 
