if (child && inPlane(gIOPowerPlane))
        {
-               if (child->getProperty("IOPMStrictTreeOrder"))
+               if ((this != rootDomain) && child->getProperty("IOPMStrictTreeOrder"))
                {
                        PM_LOG1("%s: strict PM order enforced\n", getName());
                        fStrictTreeOrder = true;
        {
                IOPowerConnection *     connection;
                connection = (IOPowerConnection *) fNotifyChildArray->getObject(0);
-               fNotifyChildArray->removeObject(0);
                notifyChild( connection );
+               fNotifyChildArray->removeObject(0);
        }
        else
        {
     theChild = (IOService *)(theNub->copyChildEntry(gIOPowerPlane));
     if (!theChild)
     {
-               assert(false);
         return true;
     }