diff --git a/reactos/ntoskrnl/io/pnpmgr/pnpmgr.c b/reactos/ntoskrnl/io/pnpmgr/pnpmgr.c index 52d04b0bdd7..3142dbac57d 100644 --- a/reactos/ntoskrnl/io/pnpmgr/pnpmgr.c +++ b/reactos/ntoskrnl/io/pnpmgr/pnpmgr.c @@ -1128,10 +1128,17 @@ IopCreateDeviceNode(PDEVICE_NODE ParentNode, { KeAcquireSpinLock(&IopDeviceTreeLock, &OldIrql); Node->Parent = ParentNode; - Node->Sibling = ParentNode->Child; - ParentNode->Child = Node; + Node->Sibling = NULL; if (ParentNode->LastChild == NULL) + { + ParentNode->Child = Node; ParentNode->LastChild = Node; + } + else + { + ParentNode->LastChild->Sibling = Node; + ParentNode->LastChild = Node; + } KeReleaseSpinLock(&IopDeviceTreeLock, OldIrql); Node->Level = ParentNode->Level + 1; }