[Pkg-virtualbox-commits] [virtualbox] 01/04: New upstream version 5.1.26-dfsg

Gianfranco Costamagna locutusofborg at moszumanska.debian.org
Fri Jul 28 08:01:15 UTC 2017


This is an automated email from the git hooks/post-receive script.

locutusofborg pushed a commit to branch master
in repository virtualbox.

commit b9f4cef9321f60dd44c29e4c04b728267cb87f43
Author: Gianfranco Costamagna <costamagnagianfranco at yahoo.it>
Date:   Fri Jul 28 09:31:42 2017 +0200

    New upstream version 5.1.26-dfsg
---
 Config.kmk                                         |    4 +-
 doc/manual/en_US/user_Networking.xml               |   59 +
 doc/manual/user_ChangeLogImpl.xml                  |   68 +-
 src/VBox/Additions/common/crOpenGL/DD_glc.py       |    0
 src/VBox/Additions/common/crOpenGL/DD_glh.py       |    0
 .../common/crOpenGL/Linux_i386_exports.py          |    0
 .../common/crOpenGL/Linux_i386_exports_dri.py      |    0
 src/VBox/Additions/common/crOpenGL/NULLfuncs.py    |    0
 src/VBox/Additions/common/crOpenGL/cr_gl.py        |    0
 src/VBox/Additions/common/crOpenGL/defs.py         |    0
 src/VBox/Additions/common/crOpenGL/defs64.py       |    0
 src/VBox/Additions/common/crOpenGL/entrypoints.py  |    0
 .../Additions/common/crOpenGL/feedback/feedback.py |    0
 .../common/crOpenGL/feedback/feedback_funcs.py     |    0
 .../common/crOpenGL/feedback/feedback_state.py     |    0
 .../common/crOpenGL/feedback/feedbackspu_proto.py  |    0
 .../Additions/common/crOpenGL/getprocaddress.py    |    0
 src/VBox/Additions/common/crOpenGL/pack/pack.py    |    0
 .../common/crOpenGL/pack/packspu_beginend.py       |    0
 .../common/crOpenGL/pack/packspu_flush.py          |    0
 .../Additions/common/crOpenGL/pack/packspu_get.py  |    0
 .../common/crOpenGL/pack/packspu_proto.py          |    0
 .../common/crOpenGL/passthrough/passthrough.py     |    0
 src/VBox/Additions/common/crOpenGL/stub_common.py  |    0
 src/VBox/Additions/common/crOpenGL/tsfuncs.py      |    0
 .../Additions/common/crOpenGL/windows_exports.py   |    0
 .../common/crOpenGL/windows_getprocaddress.py      |    0
 .../common/crOpenGL/windows_i386_exports.py        |    0
 src/VBox/Devices/Audio/DevHDA.cpp                  |   29 +-
 src/VBox/Devices/Audio/DevIchAc97.cpp              |   54 +-
 src/VBox/Devices/Audio/DrvAudio.cpp                |    6 +
 src/VBox/Devices/Audio/DrvHostNullAudio.cpp        |    1 +
 src/VBox/Devices/Audio/DrvHostPulseAudio.cpp       |   15 +-
 src/VBox/Devices/Bus/MsiCommon.cpp                 |    2 -
 .../Applications/Python/PyMod-2.7.2/Lib/ntpath.py  |    0
 .../BaseTools/Scripts/ConvertMasmToNasm.py         |    0
 .../BaseTools/Scripts/UpdateBuildVersions.py       |    0
 .../BaseTools/Source/C/PyEfiCompressor/setup.py    |    0
 .../Firmware/BaseTools/Source/C/PyUtility/setup.py |    0
 .../BaseTools/Source/Python/AutoGen/AutoGen.py     |    0
 .../BaseTools/Source/Python/AutoGen/BuildEngine.py |    0
 .../BaseTools/Source/Python/AutoGen/GenC.py        |    0
 .../BaseTools/Source/Python/AutoGen/GenDepex.py    |    0
 .../BaseTools/Source/Python/AutoGen/GenMake.py     |    0
 .../BaseTools/Source/Python/AutoGen/GenPcdDb.py    |    0
 .../Source/Python/AutoGen/InfSectionParser.py      |    0
 .../BaseTools/Source/Python/AutoGen/StrGather.py   |    0
 .../Source/Python/AutoGen/UniClassObject.py        |    0
 .../Firmware/BaseTools/Source/Python/BPDG/BPDG.py  |    0
 .../BaseTools/Source/Python/BPDG/GenVpd.py         |    0
 .../BaseTools/Source/Python/Common/Database.py     |    0
 .../Source/Python/Common/DecClassObject.py         |    0
 .../BaseTools/Source/Python/Common/Dictionary.py   |    0
 .../Source/Python/Common/DscClassObject.py         |    0
 .../Source/Python/Common/EdkIIWorkspace.py         |    0
 .../Source/Python/Common/EdkIIWorkspaceBuild.py    |    0
 .../BaseTools/Source/Python/Common/EdkLogger.py    |    0
 .../BaseTools/Source/Python/Common/Expression.py   |    0
 .../Source/Python/Common/FdfClassObject.py         |    0
 .../Source/Python/Common/FdfParserLite.py          |    0
 .../Source/Python/Common/Identification.py         |    0
 .../Source/Python/Common/InfClassObject.py         |    0
 .../Source/Python/Common/LongFilePathOs.py         |    0
 .../Source/Python/Common/LongFilePathOsPath.py     |    0
 .../Source/Python/Common/LongFilePathSupport.py    |    0
 .../Source/Python/Common/MigrationUtilities.py     |    0
 .../BaseTools/Source/Python/Common/Misc.py         |    0
 .../BaseTools/Source/Python/Common/Parsing.py      |    0
 .../BaseTools/Source/Python/Common/String.py       |    0
 .../Source/Python/Common/TargetTxtClassObject.py   |    0
 .../Source/Python/Common/ToolDefClassObject.py     |    0
 .../BaseTools/Source/Python/Common/VpdInfoFile.py  |    0
 .../Source/Python/CommonDataClass/CommonClass.py   |    0
 .../Source/Python/CommonDataClass/FdfClass.py      |    0
 .../Source/Python/CommonDataClass/ModuleClass.py   |    0
 .../Source/Python/CommonDataClass/PackageClass.py  |    0
 .../Source/Python/CommonDataClass/PlatformClass.py |    0
 .../EFI/Firmware/BaseTools/Source/Python/Ecc/C.g   |    0
 .../Firmware/BaseTools/Source/Python/Ecc/CLexer.py |    0
 .../BaseTools/Source/Python/Ecc/CParser.py         |    0
 .../Firmware/BaseTools/Source/Python/Ecc/Check.py  |    0
 .../BaseTools/Source/Python/Ecc/CodeFragment.py    |    0
 .../Source/Python/Ecc/CodeFragmentCollector.py     |    0
 .../BaseTools/Source/Python/Ecc/Configuration.py   |    0
 .../BaseTools/Source/Python/Ecc/Database.py        |    0
 .../Firmware/BaseTools/Source/Python/Ecc/Ecc.py    |    0
 .../BaseTools/Source/Python/Ecc/Exception.py       |    0
 .../BaseTools/Source/Python/Ecc/FileProfile.py     |    0
 .../BaseTools/Source/Python/Ecc/MetaDataParser.py  |    0
 .../Python/Ecc/MetaFileWorkspace/MetaDataTable.py  |    0
 .../Python/Ecc/MetaFileWorkspace/MetaFileParser.py |    0
 .../Python/Ecc/MetaFileWorkspace/MetaFileTable.py  |    0
 .../BaseTools/Source/Python/Ecc/ParserWarning.py   |    0
 .../BaseTools/Source/Python/Ecc/Xml/XmlRoutines.py |    0
 .../EFI/Firmware/BaseTools/Source/Python/Ecc/c.py  |    0
 .../Firmware/BaseTools/Source/Python/Eot/CLexer.py |    0
 .../BaseTools/Source/Python/Eot/CParser.py         |    0
 .../BaseTools/Source/Python/Eot/CodeFragment.py    |    0
 .../Source/Python/Eot/CodeFragmentCollector.py     |    0
 .../BaseTools/Source/Python/Eot/Database.py        |    0
 .../Firmware/BaseTools/Source/Python/Eot/Eot.py    |    0
 .../BaseTools/Source/Python/Eot/EotGlobalData.py   |    0
 .../BaseTools/Source/Python/Eot/FileProfile.py     |    0
 .../BaseTools/Source/Python/Eot/FvImage.py         |    0
 .../BaseTools/Source/Python/Eot/InfParserLite.py   |    0
 .../Firmware/BaseTools/Source/Python/Eot/Parser.py |    0
 .../BaseTools/Source/Python/Eot/ParserWarning.py   |    0
 .../Firmware/BaseTools/Source/Python/Eot/Report.py |    0
 .../EFI/Firmware/BaseTools/Source/Python/Eot/c.py  |    0
 .../Source/Python/GenFds/AprioriSection.py         |    0
 .../BaseTools/Source/Python/GenFds/Attribute.py    |    0
 .../BaseTools/Source/Python/GenFds/Capsule.py      |    0
 .../BaseTools/Source/Python/GenFds/CapsuleData.py  |    0
 .../Source/Python/GenFds/ComponentStatement.py     |    0
 .../Source/Python/GenFds/CompressSection.py        |    0
 .../BaseTools/Source/Python/GenFds/DataSection.py  |    0
 .../BaseTools/Source/Python/GenFds/DepexSection.py |    0
 .../BaseTools/Source/Python/GenFds/EfiSection.py   |    0
 .../Firmware/BaseTools/Source/Python/GenFds/Fd.py  |    0
 .../BaseTools/Source/Python/GenFds/FdfParser.py    |    0
 .../Firmware/BaseTools/Source/Python/GenFds/Ffs.py |    0
 .../Source/Python/GenFds/FfsFileStatement.py       |    0
 .../Source/Python/GenFds/FfsInfStatement.py        |    0
 .../Firmware/BaseTools/Source/Python/GenFds/Fv.py  |    0
 .../Source/Python/GenFds/FvImageSection.py         |    0
 .../BaseTools/Source/Python/GenFds/GenFds.py       |    0
 .../Source/Python/GenFds/GenFdsGlobalVariable.py   |    0
 .../BaseTools/Source/Python/GenFds/GuidSection.py  |    0
 .../Source/Python/GenFds/OptRomFileStatement.py    |    0
 .../Source/Python/GenFds/OptRomInfStatement.py     |    0
 .../BaseTools/Source/Python/GenFds/OptionRom.py    |    0
 .../BaseTools/Source/Python/GenFds/Region.py       |    0
 .../BaseTools/Source/Python/GenFds/Rule.py         |    0
 .../Source/Python/GenFds/RuleComplexFile.py        |    0
 .../Source/Python/GenFds/RuleSimpleFile.py         |    0
 .../BaseTools/Source/Python/GenFds/Section.py      |    0
 .../BaseTools/Source/Python/GenFds/UiSection.py    |    0
 .../BaseTools/Source/Python/GenFds/VerSection.py   |    0
 .../Firmware/BaseTools/Source/Python/GenFds/Vtf.py |    0
 .../Python/GenPatchPcdTable/GenPatchPcdTable.py    |    0
 .../Source/Python/PatchPcdValue/PatchPcdValue.py   |    0
 .../Rsa2048Sha256Sign/Rsa2048Sha256GenerateKeys.py |    0
 .../Python/Rsa2048Sha256Sign/Rsa2048Sha256Sign.py  |    0
 .../BaseTools/Source/Python/Table/Table.py         |    0
 .../Source/Python/Table/TableDataModel.py          |    0
 .../BaseTools/Source/Python/Table/TableDec.py      |    0
 .../BaseTools/Source/Python/Table/TableDsc.py      |    0
 .../Source/Python/Table/TableEotReport.py          |    0
 .../BaseTools/Source/Python/Table/TableFdf.py      |    0
 .../BaseTools/Source/Python/Table/TableFile.py     |    0
 .../BaseTools/Source/Python/Table/TableFunction.py |    0
 .../Source/Python/Table/TableIdentifier.py         |    0
 .../BaseTools/Source/Python/Table/TableInf.py      |    0
 .../BaseTools/Source/Python/Table/TablePcd.py      |    0
 .../BaseTools/Source/Python/Table/TableQuery.py    |    0
 .../BaseTools/Source/Python/Table/TableReport.py   |    0
 .../Source/Python/TargetTool/TargetTool.py         |    0
 .../Firmware/BaseTools/Source/Python/Trim/Trim.py  |    0
 .../Source/Python/UPT/Core/DependencyRules.py      |    0
 .../Python/UPT/Core/DistributionPackageClass.py    |    0
 .../BaseTools/Source/Python/UPT/Core/FileHook.py   |    0
 .../BaseTools/Source/Python/UPT/Core/IpiDb.py      |    0
 .../Source/Python/UPT/Core/PackageFile.py          |    0
 .../Source/Python/UPT/GenMetaFile/GenDecFile.py    |    0
 .../Source/Python/UPT/GenMetaFile/GenInfFile.py    |    0
 .../Python/UPT/GenMetaFile/GenMetaFileMisc.py      |    0
 .../BaseTools/Source/Python/UPT/InstallPkg.py      |    0
 .../BaseTools/Source/Python/UPT/InventoryWs.py     |    0
 .../Source/Python/UPT/Library/CommentGenerating.py |    0
 .../Source/Python/UPT/Library/CommentParsing.py    |    0
 .../Python/UPT/Library/ExpressionValidate.py       |    0
 .../BaseTools/Source/Python/UPT/Library/Misc.py    |    0
 .../Source/Python/UPT/Library/ParserValidate.py    |    0
 .../BaseTools/Source/Python/UPT/Library/Parsing.py |    0
 .../BaseTools/Source/Python/UPT/Library/String.py  |    0
 .../Source/Python/UPT/Library/UniClassObject.py    |    0
 .../Source/Python/UPT/Library/Xml/XmlRoutines.py   |    0
 .../BaseTools/Source/Python/UPT/Logger/Log.py      |    0
 .../Firmware/BaseTools/Source/Python/UPT/MkPkg.py  |    0
 .../Source/Python/UPT/Object/POM/CommonObject.py   |    0
 .../Source/Python/UPT/Object/POM/ModuleObject.py   |    0
 .../Source/Python/UPT/Object/POM/PackageObject.py  |    0
 .../Source/Python/UPT/Object/Parser/DecObject.py   |    0
 .../Python/UPT/Object/Parser/InfBinaryObject.py    |    0
 .../UPT/Object/Parser/InfBuildOptionObject.py      |    0
 .../Python/UPT/Object/Parser/InfCommonObject.py    |    0
 .../UPT/Object/Parser/InfDefineCommonObject.py     |    0
 .../Python/UPT/Object/Parser/InfDefineObject.py    |    0
 .../Python/UPT/Object/Parser/InfDepexObject.py     |    0
 .../Python/UPT/Object/Parser/InfGuidObject.py      |    0
 .../Python/UPT/Object/Parser/InfHeaderObject.py    |    0
 .../UPT/Object/Parser/InfLibraryClassesObject.py   |    0
 .../Source/Python/UPT/Object/Parser/InfMisc.py     |    0
 .../Python/UPT/Object/Parser/InfPackagesObject.py  |    0
 .../Python/UPT/Object/Parser/InfPcdObject.py       |    0
 .../Python/UPT/Object/Parser/InfPpiObject.py       |    0
 .../Python/UPT/Object/Parser/InfProtocolObject.py  |    0
 .../Python/UPT/Object/Parser/InfSoucesObject.py    |    0
 .../UPT/Object/Parser/InfUserExtensionObject.py    |    0
 .../Source/Python/UPT/Parser/DecParser.py          |    0
 .../Source/Python/UPT/Parser/DecParserMisc.py      |    0
 .../Source/Python/UPT/Parser/InfAsBuiltProcess.py  |    0
 .../Python/UPT/Parser/InfBinarySectionParser.py    |    0
 .../UPT/Parser/InfBuildOptionSectionParser.py      |    0
 .../Python/UPT/Parser/InfDefineSectionParser.py    |    0
 .../Python/UPT/Parser/InfDepexSectionParser.py     |    0
 .../UPT/Parser/InfGuidPpiProtocolSectionParser.py  |    0
 .../Python/UPT/Parser/InfLibrarySectionParser.py   |    0
 .../Python/UPT/Parser/InfPackageSectionParser.py   |    0
 .../Source/Python/UPT/Parser/InfParser.py          |    0
 .../Source/Python/UPT/Parser/InfParserMisc.py      |    0
 .../Python/UPT/Parser/InfPcdSectionParser.py       |    0
 .../Source/Python/UPT/Parser/InfSectionParser.py   |    0
 .../Python/UPT/Parser/InfSourceSectionParser.py    |    0
 .../Python/UPT/PomAdapter/DecPomAlignment.py       |    0
 .../Python/UPT/PomAdapter/InfPomAlignment.py       |    0
 .../Python/UPT/PomAdapter/InfPomAlignmentMisc.py   |    0
 .../BaseTools/Source/Python/UPT/ReplacePkg.py      |    0
 .../Firmware/BaseTools/Source/Python/UPT/RmPkg.py  |    0
 .../Firmware/BaseTools/Source/Python/UPT/UPT.py    |    0
 .../UPT/UnitTest/CommentGeneratingUnitTest.py      |    0
 .../Python/UPT/UnitTest/CommentParsingUnitTest.py  |    0
 .../Source/Python/UPT/UnitTest/DecParserTest.py    |    0
 .../Python/UPT/UnitTest/DecParserUnitTest.py       |    0
 .../Python/UPT/UnitTest/InfBinarySectionTest.py    |    0
 .../BaseTools/Source/Python/UPT/Xml/CommonXml.py   |    0
 .../Source/Python/UPT/Xml/GuidProtocolPpiXml.py    |    0
 .../BaseTools/Source/Python/UPT/Xml/IniToXml.py    |    0
 .../Source/Python/UPT/Xml/ModuleSurfaceAreaXml.py  |    0
 .../Source/Python/UPT/Xml/PackageSurfaceAreaXml.py |    0
 .../BaseTools/Source/Python/UPT/Xml/PcdXml.py      |    0
 .../BaseTools/Source/Python/UPT/Xml/XmlParser.py   |    0
 .../Source/Python/UPT/Xml/XmlParserMisc.py         |    0
 .../Source/Python/Workspace/BuildClassObject.py    |    0
 .../Source/Python/Workspace/MetaDataTable.py       |    0
 .../Python/Workspace/MetaFileCommentParser.py      |    0
 .../Source/Python/Workspace/MetaFileParser.py      |    0
 .../Source/Python/Workspace/MetaFileTable.py       |    0
 .../Source/Python/Workspace/WorkspaceCommon.py     |    0
 .../Source/Python/Workspace/WorkspaceDatabase.py   |    0
 .../BaseTools/Source/Python/build/BuildReport.py   |    0
 .../BaseTools/Source/Python/build/build.py         |    0
 .../Firmware/IntelFspPkg/FspSecCore/Vtf0/Build.py  |    0
 .../FspSecCore/Vtf0/Tools/FixupForRawSection.py    |    0
 .../EFI/Firmware/IntelFspPkg/Tools/GenCfgOpt.py    |    0
 .../EFI/Firmware/IntelFspPkg/Tools/PatchFv.py      |    0
 .../FspWrapperSecCore/Vtf0/Build.py                |    0
 .../Vtf0/Tools/FixupForRawSection.py               |    0
 .../Firmware/UefiCpuPkg/ResetVector/Vtf0/Build.py  |    0
 src/VBox/Devices/EFI/FirmwareBin/VBoxEFI32.fd      |  Bin 2097152 -> 2097152 bytes
 src/VBox/Devices/EFI/FirmwareBin/VBoxEFI64.fd      |  Bin 2097152 -> 2097152 bytes
 .../Graphics/BIOS/VBoxVgaBiosAlternative286.asm    |    6 +-
 .../Graphics/BIOS/VBoxVgaBiosAlternative286.md5sum |    2 +-
 .../Graphics/BIOS/VBoxVgaBiosAlternative386.asm    |    6 +-
 .../Graphics/BIOS/VBoxVgaBiosAlternative386.md5sum |    2 +-
 .../Graphics/BIOS/VBoxVgaBiosAlternative8086.asm   |    6 +-
 .../BIOS/VBoxVgaBiosAlternative8086.md5sum         |    2 +-
 src/VBox/Devices/Input/PS2M.cpp                    |   86 +-
 src/VBox/Devices/Network/SrvIntNetR0.cpp           |    5 +-
 .../Devices/PC/BIOS/VBoxBiosAlternative286.asm     |    4 +-
 .../Devices/PC/BIOS/VBoxBiosAlternative286.md5sum  |    2 +-
 .../Devices/PC/BIOS/VBoxBiosAlternative386.asm     |    4 +-
 .../Devices/PC/BIOS/VBoxBiosAlternative386.md5sum  |    2 +-
 .../Devices/PC/BIOS/VBoxBiosAlternative8086.asm    |    4 +-
 .../Devices/PC/BIOS/VBoxBiosAlternative8086.md5sum |    2 +-
 .../VBoxDTrace/onnv/cmd/dtrace/demo/mkdemo.pl      |    0
 .../dtrace/test/tst/common/ip/tst.ipv4localtcp.ksh |    0
 .../dtrace/test/tst/common/ip/tst.ipv4localudp.ksh |    0
 .../test/tst/common/ip/tst.ipv4remotetcp.ksh       |    0
 .../test/tst/common/ip/tst.ipv4remoteudp.ksh       |    0
 .../test/tst/common/ip/tst.localtcpstate.ksh       |    0
 .../test/tst/common/ip/tst.remotetcpstate.ksh      |    0
 .../scripting/err.D_MACRO_UNDEF.invalidargs.d      |    0
 .../tst/common/scripting/err.D_OP_LVAL.rdonly.d    |    0
 .../common/scripting/err.D_OP_WRITE.usepidmacro.d  |    0
 .../test/tst/common/scripting/err.D_SYNTAX.inval.d |    0
 .../test/tst/common/scripting/err.D_SYNTAX.pid.d   |    0
 .../dtrace/test/tst/common/scripting/tst.arg0.d    |    0
 .../dtrace/test/tst/common/scripting/tst.assign.d  |    0
 .../dtrace/test/tst/common/scripting/tst.basic.d   |    0
 .../dtrace/test/tst/common/scripting/tst.egid.d    |    0
 .../dtrace/test/tst/common/scripting/tst.euid.d    |    0
 .../cmd/dtrace/test/tst/common/scripting/tst.gid.d |    0
 .../dtrace/test/tst/common/scripting/tst.pgid.d    |    0
 .../cmd/dtrace/test/tst/common/scripting/tst.pid.d |    0
 .../dtrace/test/tst/common/scripting/tst.ppid.d    |    0
 .../dtrace/test/tst/common/scripting/tst.projid.d  |    0
 .../dtrace/test/tst/common/scripting/tst.quite.d   |    0
 .../cmd/dtrace/test/tst/common/scripting/tst.sid.d |    0
 .../dtrace/test/tst/common/scripting/tst.taskid.d  |    0
 .../dtrace/test/tst/common/scripting/tst.trace.d   |    0
 .../cmd/dtrace/test/tst/common/scripting/tst.uid.d |    0
 .../err.D_ACT_SPEC.SpeculateWithBreakPoint.d       |    0
 .../err.D_ACT_SPEC.SpeculateWithChill.d            |    0
 .../err.D_ACT_SPEC.SpeculateWithCopyOut.d          |    0
 .../err.D_ACT_SPEC.SpeculateWithCopyOutStr.d       |    0
 .../err.D_ACT_SPEC.SpeculateWithPanic.d            |    0
 .../err.D_ACT_SPEC.SpeculateWithRaise.d            |    0
 .../speculation/err.D_ACT_SPEC.SpeculateWithStop.d |    0
 .../dtrace/test/tst/common/usdt/tst.corruptenv.ksh |    0
 .../onnv/lib/libdtrace/common/mkerrtags.sh         |    0
 src/VBox/Frontends/VirtualBox/nls/VirtualBox_id.ts |   40 +-
 .../VirtualBox/src/widgets/UIFilmContainer.cpp     |    0
 src/VBox/GuestHost/OpenGL/error/error.py           |    0
 src/VBox/GuestHost/OpenGL/packer/opcodes.py        |    0
 src/VBox/GuestHost/OpenGL/packer/pack_current.py   |    0
 .../GuestHost/OpenGL/packer/pack_currentheader.py  |    0
 src/VBox/GuestHost/OpenGL/packer/pack_header.py    |    0
 src/VBox/GuestHost/OpenGL/packer/pack_swap.py      |    0
 src/VBox/GuestHost/OpenGL/packer/packer.py         |    0
 src/VBox/GuestHost/OpenGL/packer/packer_bbox.py    |    0
 src/VBox/GuestHost/OpenGL/spu_loader/dispatch.py   |    0
 .../GuestHost/OpenGL/spu_loader/dispatchheader.py  |    0
 src/VBox/GuestHost/OpenGL/spu_loader/glloader.py   |    0
 src/VBox/GuestHost/OpenGL/spu_loader/spuchange.py  |    0
 src/VBox/GuestHost/OpenGL/spu_loader/spucopy.py    |    0
 src/VBox/GuestHost/OpenGL/state_tracker/convert.py |    0
 .../GuestHost/OpenGL/state_tracker/dump_gen.py     |    0
 .../GuestHost/OpenGL/state_tracker/gendiffcode.py  |    0
 .../OpenGL/state_tracker/get_components.py         |    0
 .../OpenGL/state_tracker/state_current.py          |    0
 .../GuestHost/OpenGL/state_tracker/state_funcs.py  |    0
 .../GuestHost/OpenGL/state_tracker/state_get.py    |    0
 .../OpenGL/state_tracker/state_isenabled.py        |    0
 src/VBox/GuestHost/OpenGL/util/debug_opcodes.py    |    0
 src/VBox/HostDrivers/Support/SUPLibLdr.cpp         |    2 +-
 .../HostDrivers/VBoxNetAdp/win/VBoxNetAdp-win.cpp  | 1301 ++++++++++++++++++--
 .../HostDrivers/VBoxNetAdp/win/VBoxNetAdp6.inf     |    5 +-
 .../VBoxNetFlt/win/drv/VBoxNetLwf-win.cpp          |   17 +
 src/VBox/HostDrivers/adpctl/VBoxNetAdpCtl.cpp      |  113 +-
 .../SharedOpenGL/crserverlib/get_sizes.py          |    0
 .../SharedOpenGL/crserverlib/server_dispatch.py    |    0
 .../crserverlib/server_dispatch_header.py          |    0
 .../SharedOpenGL/crserverlib/server_get.py         |    0
 .../SharedOpenGL/crserverlib/server_retval.py      |    0
 .../SharedOpenGL/crserverlib/server_simpleget.py   |    0
 .../HostServices/SharedOpenGL/dlm/dlm_generated.py |    0
 .../HostServices/SharedOpenGL/unpacker/unpack.py   |    0
 .../SharedOpenGL/unpacker/unpack_extend.py         |    0
 .../SharedOpenGL/unpacker/unpack_header.py         |    0
 src/VBox/Installer/linux/rpm/VirtualBox.tmpl.spec  |    1 +
 src/VBox/Installer/linux/rpm/rules                 |    2 +-
 .../win/InstallHelper/VBoxInstallHelper.cpp        |   11 +-
 src/VBox/Installer/win/VirtualBox.wxs              |    2 -
 src/VBox/Main/glue/com.cpp                         |    2 +-
 src/VBox/Main/glue/constants-python.xsl            |    0
 src/VBox/Main/glue/vboxapi.py                      |    0
 src/VBox/Main/src-client/ConsoleImpl2.cpp          |  110 +-
 src/VBox/Main/src-client/DrvAudioVRDE.cpp          |   33 +-
 src/VBox/Main/src-server/SnapshotImpl.cpp          |   14 +-
 .../Main/src-server/USBIdDatabaseGenerator.cpp     |    2 +-
 src/VBox/Main/xml/Settings.cpp                     |   34 +-
 src/VBox/Runtime/VBox/log-vbox.cpp                 |    3 +-
 src/VBox/VMM/VMMAll/TMAllCpu.cpp                   |    8 +-
 src/VBox/VMM/VMMR3/TM.cpp                          |   21 +
 src/VBox/ValidationKit/common/__init__.py          |    0
 .../ValidationKit/common/constants/__init__.py     |    0
 src/VBox/ValidationKit/common/utils.py             |    0
 src/VBox/ValidationKit/common/webutils.py          |    0
 src/VBox/ValidationKit/testanalysis/diff.py        |    0
 src/VBox/ValidationKit/testanalysis/reader.py      |    0
 src/VBox/ValidationKit/testanalysis/reporting.py   |    0
 .../ValidationKit/testboxscript/testboxcommand.py  |    0
 .../ValidationKit/testboxscript/testboxcommons.py  |    0
 .../testboxscript/testboxconnection.py             |    0
 .../ValidationKit/testboxscript/testboxtasks.py    |    0
 .../ValidationKit/testboxscript/testboxupgrade.py  |    0
 src/VBox/ValidationKit/testdriver/base.py          |    0
 src/VBox/ValidationKit/testdriver/reporter.py      |    0
 src/VBox/ValidationKit/testdriver/tst-txsclient.py |    0
 src/VBox/ValidationKit/testdriver/txsclient.py     |    0
 src/VBox/ValidationKit/testdriver/vbox.py          |    0
 src/VBox/ValidationKit/testdriver/vboxcon.py       |    0
 src/VBox/ValidationKit/testdriver/vboxtestvms.py   |    0
 src/VBox/ValidationKit/testdriver/vboxwrappers.py  |    0
 src/VBox/ValidationKit/testdriver/winbase.py       |    0
 src/VBox/ValidationKit/testmanager/core/base.py    |    0
 src/VBox/ValidationKit/testmanager/core/build.py   |    0
 .../testmanager/core/buildblacklist.py             |    0
 .../ValidationKit/testmanager/core/buildsource.py  |    0
 src/VBox/ValidationKit/testmanager/core/db.py      |    0
 .../ValidationKit/testmanager/core/dbobjcache.py   |    0
 .../testmanager/core/failurecategory.py            |    0
 .../testmanager/core/failurereason.py              |    0
 .../testmanager/core/globalresource.py             |    0
 src/VBox/ValidationKit/testmanager/core/report.py  |    0
 .../ValidationKit/testmanager/core/schedgroup.py   |    0
 .../testmanager/core/schedulerbase.py              |    0
 .../testmanager/core/schedulerbeci.py              |    0
 .../ValidationKit/testmanager/core/systemlog.py    |    0
 src/VBox/ValidationKit/testmanager/core/testbox.py |    0
 .../testmanager/core/testboxcontroller.py          |    0
 .../testmanager/core/testboxstatus.py              |    0
 .../ValidationKit/testmanager/core/testcase.py     |    0
 .../ValidationKit/testmanager/core/testcaseargs.py |    0
 .../ValidationKit/testmanager/core/testgroup.py    |    0
 .../testmanager/core/testresultfailures.py         |    0
 .../ValidationKit/testmanager/core/testresults.py  |    0
 src/VBox/ValidationKit/testmanager/core/testset.py |    0
 .../ValidationKit/testmanager/core/useraccount.py  |    0
 .../ValidationKit/testmanager/core/vcsrevisions.py |    0
 .../testmanager/core/webservergluebase.py          |    0
 .../testmanager/core/webservergluecgi.py           |    0
 .../ValidationKit/testmanager/webui/wuiadmin.py    |    0
 .../testmanager/webui/wuiadminbuild.py             |    0
 .../testmanager/webui/wuiadminbuildblacklist.py    |    0
 .../testmanager/webui/wuiadminbuildcategory.py     |    0
 .../testmanager/webui/wuiadminbuildsource.py       |    0
 .../testmanager/webui/wuiadminfailurecategory.py   |    0
 .../testmanager/webui/wuiadminfailurereason.py     |    0
 .../testmanager/webui/wuiadminglobalrsrc.py        |    0
 .../testmanager/webui/wuiadminschedgroup.py        |    0
 .../testmanager/webui/wuiadminsystemlog.py         |    0
 .../testmanager/webui/wuiadmintestbox.py           |    0
 .../testmanager/webui/wuiadmintestcase.py          |    0
 .../testmanager/webui/wuiadmintestgroup.py         |    0
 .../testmanager/webui/wuiadminuseraccount.py       |    0
 .../ValidationKit/testmanager/webui/wuibase.py     |    0
 .../testmanager/webui/wuicontentbase.py            |    0
 .../ValidationKit/testmanager/webui/wuigraphwiz.py |    0
 .../ValidationKit/testmanager/webui/wuihlpform.py  |    0
 .../ValidationKit/testmanager/webui/wuihlpgraph.py |    0
 .../testmanager/webui/wuihlpgraphbase.py           |    0
 .../testmanager/webui/wuihlpgraphgooglechart.py    |    0
 .../testmanager/webui/wuihlpgraphmatplotlib.py     |    0
 .../testmanager/webui/wuihlpgraphsimple.py         |    0
 .../testmanager/webui/wuilogviewer.py              |    0
 .../ValidationKit/testmanager/webui/wuimain.py     |    0
 .../ValidationKit/testmanager/webui/wuireport.py   |    0
 .../testmanager/webui/wuitestresult.py             |    0
 .../testmanager/webui/wuitestresultfailure.py      |    0
 .../testmanager/webui/wuivcshistory.py             |    0
 .../ValidationKit/tests/storage/remoteexecutor.py  |    0
 src/VBox/ValidationKit/tests/storage/storagecfg.py |    0
 src/VBox/ValidationKit/tests/usb/tst-utsgadget.py  |    0
 src/VBox/ValidationKit/tests/usb/usbgadget.py      |    0
 src/libs/xpcom18a4/nsprpub/Makefile.in             |    0
 src/libs/xpcom18a4/nsprpub/config/config.mk        |    0
 src/libs/xpcom18a4/nsprpub/config/rules.mk         |    0
 src/libs/xpcom18a4/python/__init__.py              |    0
 src/libs/xpcom18a4/python/client/__init__.py       |    0
 src/libs/xpcom18a4/python/components.py            |    0
 src/libs/xpcom18a4/python/file.py                  |    0
 src/libs/xpcom18a4/python/nsError.py               |    0
 src/libs/xpcom18a4/python/primitives.py            |    0
 src/libs/xpcom18a4/python/server/__init__.py       |    0
 src/libs/xpcom18a4/python/server/enumerator.py     |    0
 src/libs/xpcom18a4/python/server/factory.py        |    0
 src/libs/xpcom18a4/python/server/loader.py         |    0
 src/libs/xpcom18a4/python/server/module.py         |    0
 src/libs/xpcom18a4/python/server/policy.py         |    0
 .../xpcom18a4/python/test/pyxpcom_test_tools.py    |    0
 .../xpcom18a4/python/test/test_com_exceptions.py   |    0
 src/libs/xpcom18a4/python/test/test_comfile.py     |    0
 .../test/test_component/py_test_component.py       |    0
 src/libs/xpcom18a4/python/test/test_components.py  |    0
 .../python/test/test_isupports_primitives.py       |    0
 src/libs/xpcom18a4/python/test/test_misc.py        |    0
 src/libs/xpcom18a4/python/test/test_streams.py     |    0
 .../xpcom18a4/python/test/test_test_component.py   |    0
 .../xpcom18a4/python/test/test_weakreferences.py   |    0
 src/libs/xpcom18a4/python/tools/regxpcom.py        |    0
 src/libs/xpcom18a4/python/tools/tracer_demo.py     |    0
 src/libs/xpcom18a4/python/vboxxpcom.py             |    2 +-
 src/libs/xpcom18a4/python/xpt.py                   |    0
 465 files changed, 1776 insertions(+), 318 deletions(-)

diff --git a/Config.kmk b/Config.kmk
index faecc44..e4a89f8 100644
--- a/Config.kmk
+++ b/Config.kmk
@@ -208,7 +208,7 @@ VBOX_VERSION_MINOR = 1
 # This is the current build number. It should be increased every time we publish a
 # new build. The define is available in every source file. Only even build numbers
 # will be published, odd numbers are set during development.
-VBOX_VERSION_BUILD =  24
+VBOX_VERSION_BUILD = 26
 # The raw version string. This *must not* contain any other information/fields than
 # major, minor and build revision (as it is now) -- also will be used for host/guest version
 # comparison.
@@ -6869,7 +6869,7 @@ endif
 SVN                    ?= svn$(HOSTSUFF_EXE)
 VBOX_SVN_REV_KMK        = $(PATH_OUT)/revision.kmk
 ifndef VBOX_SVN_REV
- VBOX_SVN_REV_FALLBACK := $(patsubst %:,,  $Rev: 117012 $  )
+ VBOX_SVN_REV_FALLBACK := $(patsubst %:,,  $Rev: 117224 $  )
  VBOX_SVN_DEP          := $(firstword $(wildcard $(PATH_ROOT)/.svn/wc.db $(abspath $(PATH_ROOT)/../.svn/wc.db) $(abspath $(PATH_ROOT)/../../.svn/wc.db) $(PATH_ROOT)/.svn/entries))
  ifeq ($(which $(SVN)),)
   VBOX_SVN_DEP         :=
diff --git a/doc/manual/en_US/user_Networking.xml b/doc/manual/en_US/user_Networking.xml
index cbd7e15..bc5b450 100644
--- a/doc/manual/en_US/user_Networking.xml
+++ b/doc/manual/en_US/user_Networking.xml
@@ -229,6 +229,65 @@
         </glossentry>
       </glosslist></para>
 
+    <para>The following table provides a quick overview of the most important
+    networking modes:</para>
+    <table>
+      <title>Overview</title>
+      <tgroup cols="5">
+        <colspec align="left" />
+        <colspec align="center" />
+        <colspec align="center" />
+        <colspec align="center" />
+        <colspec align="center" />
+        <thead valign="middle">
+          <row>
+            <entry></entry>
+            <entry><emphasis role="bold">VM ↔ Host</emphasis></entry>
+            <entry><emphasis role="bold">VM1 ↔ VM2</emphasis></entry>
+            <entry><emphasis role="bold">VM → Internet</emphasis></entry>
+            <entry><emphasis role="bold">VM ← Internet</emphasis></entry>
+          </row>
+        </thead>
+        <tbody valign="middle">
+          <row>
+            <entry>Host-only</entry>
+            <entry><emphasis role="bold">+</emphasis></entry>
+            <entry align="center"><emphasis role="bold">+</emphasis></entry>
+            <entry>–</entry>
+            <entry>–</entry>
+          </row>
+          <row>
+            <entry>Internal</entry>
+            <entry>–</entry>
+            <entry><emphasis role="bold">+</emphasis></entry>
+            <entry>–</entry>
+            <entry>–</entry>
+          </row>
+          <row>
+            <entry>Bridged</entry>
+            <entry><emphasis role="bold">+</emphasis></entry>
+            <entry><emphasis role="bold">+</emphasis></entry>
+            <entry><emphasis role="bold">+</emphasis></entry>
+            <entry><emphasis role="bold">+</emphasis></entry>
+          </row>
+          <row>
+            <entry>NAT</entry>
+            <entry>–</entry>
+            <entry>–</entry>
+            <entry><emphasis role="bold">+</emphasis></entry>
+            <entry><link linkend="natforward">Port forwarding</link></entry>
+          </row>
+          <row>
+            <entry>NAT Network</entry>
+            <entry>–</entry>
+            <entry><emphasis role="bold">+</emphasis></entry>
+            <entry><emphasis role="bold">+</emphasis></entry>
+            <entry><link linkend="network_nat_service">Port forwarding</link></entry>
+          </row>
+        </tbody>
+      </tgroup>
+    </table>
+
     <para>The following sections describe the available network modes in more
     detail.</para>
   </sect1>
diff --git a/doc/manual/user_ChangeLogImpl.xml b/doc/manual/user_ChangeLogImpl.xml
index 892048e..973781a 100644
--- a/doc/manual/user_ChangeLogImpl.xml
+++ b/doc/manual/user_ChangeLogImpl.xml
@@ -3,6 +3,67 @@
 <chapter> <!-- HACK ALERT! Seems we must have a single top level element for xi:include to work.
                            So, we use chapter and xpointer="xpointer(/chapter/)" with xi:include. -->
   <sect1>
+    <title>Version 5.1.26 (2017-07-27)</title>
+
+    <para>This is a maintenance release. The following items were fixed and/or
+      added:</para>
+
+    <itemizedlist>
+
+      <listitem>
+        <para>VMM: reset the TSC on VM reset to work around a Windows bug
+          (bug #16643)</para>
+      </listitem>
+
+      <listitem>
+        <para>Audio: fixed memory leak when enabled with VRDP connections
+          (5.1.24 regression; bug #16928)</para>
+      </listitem>
+
+      <listitem>
+        <para>Audio: fixed creation of too many sound sinks on Linux hosts when
+          using the PulseAudio backend (bug #16938)</para>
+      </listitem>
+
+      <listitem>
+        <para>Audio: implemented record gain registers for AC'97 emulation; 
+          those are needed for newer Ubuntu guests which rely on those when controlling
+          gain and muting the recording (capturing) levels</para>
+      </listitem>
+
+      <listitem>
+        <para>Storage: fixed hang when using the emulated NVMe controller with the
+          SPDK (bug #16945)</para>
+      </listitem>
+
+      <listitem>
+        <para>Mouse: double click was not working with a precision touchpad
+          (bug #14632)</para>
+      </listitem>
+
+      <listitem>
+        <para>Linux hosts: properly bring up host-only network interfaces with
+          <emphasis>iproute</emphasis> (5.1.24 regression; bug #16911)</para>
+      </listitem>
+
+      <listitem>
+        <para>Linux hosts: provide Python 3 libraries for deb/rpm packages</para>
+      </listitem>
+
+      <listitem>
+        <para>Windows hosts: make it possible to use host-only networking
+          without having bridged networking installed</para>
+      </listitem>
+
+      <listitem>
+        <para>Windows guests: fixed automatic logons for Vista and newer
+          Windows guests (5.1.24 regression; bug #16921)</para>
+      </listitem>
+
+    </itemizedlist>
+  </sect1>
+
+  <sect1>
     <title>Version 5.1.24 (2017-07-18)</title>
 
     <para>This is a maintenance release. The following items were fixed and/or
@@ -58,7 +119,7 @@
       <listitem>
         <para>API: use the correct file name of the VM machine state if the
           VM settings directory is renamed, for example during grouping /
-          ungrouping a VM (bugs #16075 and #16745)</para>
+          ungrouping a VM (bugs #16074 and #16745)</para>
       </listitem>
 
       <listitem>
@@ -96,6 +157,11 @@
       </listitem>
 
       <listitem>
+        <para>Windows hosts: another fix for Windows insider builds
+          (bug #16892)</para>
+      </listitem>
+
+      <listitem>
         <para>Windows hosts: fixed crashes if driver verifier is enabled
           (bug #15741)</para>
       </listitem>
diff --git a/src/VBox/Additions/common/crOpenGL/DD_glc.py b/src/VBox/Additions/common/crOpenGL/DD_glc.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Additions/common/crOpenGL/DD_glh.py b/src/VBox/Additions/common/crOpenGL/DD_glh.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Additions/common/crOpenGL/Linux_i386_exports.py b/src/VBox/Additions/common/crOpenGL/Linux_i386_exports.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Additions/common/crOpenGL/Linux_i386_exports_dri.py b/src/VBox/Additions/common/crOpenGL/Linux_i386_exports_dri.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Additions/common/crOpenGL/NULLfuncs.py b/src/VBox/Additions/common/crOpenGL/NULLfuncs.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Additions/common/crOpenGL/cr_gl.py b/src/VBox/Additions/common/crOpenGL/cr_gl.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Additions/common/crOpenGL/defs.py b/src/VBox/Additions/common/crOpenGL/defs.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Additions/common/crOpenGL/defs64.py b/src/VBox/Additions/common/crOpenGL/defs64.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Additions/common/crOpenGL/entrypoints.py b/src/VBox/Additions/common/crOpenGL/entrypoints.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Additions/common/crOpenGL/feedback/feedback.py b/src/VBox/Additions/common/crOpenGL/feedback/feedback.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Additions/common/crOpenGL/feedback/feedback_funcs.py b/src/VBox/Additions/common/crOpenGL/feedback/feedback_funcs.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Additions/common/crOpenGL/feedback/feedback_state.py b/src/VBox/Additions/common/crOpenGL/feedback/feedback_state.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Additions/common/crOpenGL/feedback/feedbackspu_proto.py b/src/VBox/Additions/common/crOpenGL/feedback/feedbackspu_proto.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Additions/common/crOpenGL/getprocaddress.py b/src/VBox/Additions/common/crOpenGL/getprocaddress.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Additions/common/crOpenGL/pack/pack.py b/src/VBox/Additions/common/crOpenGL/pack/pack.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Additions/common/crOpenGL/pack/packspu_beginend.py b/src/VBox/Additions/common/crOpenGL/pack/packspu_beginend.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Additions/common/crOpenGL/pack/packspu_flush.py b/src/VBox/Additions/common/crOpenGL/pack/packspu_flush.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Additions/common/crOpenGL/pack/packspu_get.py b/src/VBox/Additions/common/crOpenGL/pack/packspu_get.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Additions/common/crOpenGL/pack/packspu_proto.py b/src/VBox/Additions/common/crOpenGL/pack/packspu_proto.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Additions/common/crOpenGL/passthrough/passthrough.py b/src/VBox/Additions/common/crOpenGL/passthrough/passthrough.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Additions/common/crOpenGL/stub_common.py b/src/VBox/Additions/common/crOpenGL/stub_common.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Additions/common/crOpenGL/tsfuncs.py b/src/VBox/Additions/common/crOpenGL/tsfuncs.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Additions/common/crOpenGL/windows_exports.py b/src/VBox/Additions/common/crOpenGL/windows_exports.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Additions/common/crOpenGL/windows_getprocaddress.py b/src/VBox/Additions/common/crOpenGL/windows_getprocaddress.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Additions/common/crOpenGL/windows_i386_exports.py b/src/VBox/Additions/common/crOpenGL/windows_i386_exports.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/Audio/DevHDA.cpp b/src/VBox/Devices/Audio/DevHDA.cpp
index 290c384..3506250 100644
--- a/src/VBox/Devices/Audio/DevHDA.cpp
+++ b/src/VBox/Devices/Audio/DevHDA.cpp
@@ -3705,6 +3705,9 @@ static DECLCALLBACK(void) hdaCloseIn(PHDASTATE pThis, PDMAUDIORECSOURCE enmRecSo
     PHDADRIVER pDrv;
     RTListForEach(&pThis->lstDrv, pDrv, HDADRIVER, Node)
     {
+        AudioMixerRemoveStream(pThis->pSinkLineIn, pDrv->LineIn.phStrmIn);
+        pDrv->LineIn.phStrmIn = NULL;
+
         if (pDrv->LineIn.pStrmIn)
         {
             pDrv->pConnector->pfnDestroyIn(pDrv->pConnector, pDrv->LineIn.pStrmIn);
@@ -3721,6 +3724,9 @@ static DECLCALLBACK(void) hdaCloseOut(PHDASTATE pThis)
     PHDADRIVER pDrv;
     RTListForEach(&pThis->lstDrv, pDrv, HDADRIVER, Node)
     {
+        AudioMixerRemoveStream(pThis->pSinkOutput, pDrv->Out.phStrmOut);
+        pDrv->Out.phStrmOut = NULL;
+
         if (pDrv->Out.pStrmOut)
         {
             pDrv->pConnector->pfnDestroyOut(pDrv->pConnector, pDrv->Out.pStrmOut);
@@ -3757,6 +3763,9 @@ static DECLCALLBACK(int) hdaOpenIn(PHDASTATE pThis,
     PHDADRIVER pDrv;
     RTListForEach(&pThis->lstDrv, pDrv, HDADRIVER, Node)
     {
+        AudioMixerRemoveStream(pSink, pDrv->LineIn.phStrmIn);
+        pDrv->LineIn.phStrmIn = NULL;
+
         if (pDrv->LineIn.pStrmIn)
         {
             pDrv->pConnector->pfnDestroyIn(pDrv->pConnector, pDrv->LineIn.pStrmIn);
@@ -3774,7 +3783,6 @@ static DECLCALLBACK(int) hdaOpenIn(PHDASTATE pThis,
         LogFlowFunc(("LUN#%RU8: Created input \"%s\", with rc=%Rrc\n", pDrv->uLUN, pszDesc, rc));
         if (rc == VINF_SUCCESS) /* Note: Could return VWRN_ALREADY_EXISTS. */
         {
-            AudioMixerRemoveStream(pSink, pDrv->LineIn.phStrmIn);
             rc = AudioMixerAddStreamIn(pSink,
                                        pDrv->pConnector, pDrv->LineIn.pStrmIn,
                                        0 /* uFlags */, &pDrv->LineIn.phStrmIn);
@@ -3796,6 +3804,9 @@ static DECLCALLBACK(int) hdaOpenOut(PHDASTATE pThis,
     PHDADRIVER pDrv;
     RTListForEach(&pThis->lstDrv, pDrv, HDADRIVER, Node)
     {
+        AudioMixerRemoveStream(pThis->pSinkOutput, pDrv->Out.phStrmOut);
+        pDrv->Out.phStrmOut = NULL;
+
         if (pDrv->Out.pStrmOut)
         {
             pDrv->pConnector->pfnDestroyOut(pDrv->pConnector, pDrv->Out.pStrmOut);
@@ -3814,7 +3825,6 @@ static DECLCALLBACK(int) hdaOpenOut(PHDASTATE pThis,
         LogFlowFunc(("LUN#%RU8: Created output \"%s\", with rc=%Rrc\n", pDrv->uLUN, pszDesc, rc));
         if (rc == VINF_SUCCESS) /* Note: Could return VWRN_ALREADY_EXISTS. */
         {
-            AudioMixerRemoveStream(pThis->pSinkOutput, pDrv->Out.phStrmOut);
             rc = AudioMixerAddStreamOut(pThis->pSinkOutput,
                                         pDrv->pConnector, pDrv->Out.pStrmOut,
                                         0 /* uFlags */, &pDrv->Out.phStrmOut);
@@ -4107,7 +4117,12 @@ static void hdaStreamTransfer(PHDASTATE pThis, PHDASTREAM pStream, uint32_t cbTo
     Assert(cbPeriodRemaining); /* Paranoia. */
 
     const uint32_t cbElapsed         = hdaStreamTransferGetElapsed(pThis, pStream);
-    Assert(cbElapsed);         /* Paranoia. */
+
+    if (!cbElapsed)
+    {
+        hdaStreamPeriodUnlock(pPeriod);
+        return;
+    }
 
     /* Limit the data to read, as this routine could be delayed and therefore
      * report wrong (e.g. too much) cbElapsed bytes. */
@@ -5178,8 +5193,10 @@ static DECLCALLBACK(int) hdaLoadExec(PPDMDEVINS pDevIns, PSSMHANDLE pSSM, uint32
 
     /*
      * Load controller-specifc internals.
+     * Don't annoy other team mates (forgot this for state v7).
      */
-    if (SSMR3HandleRevision(pSSM) >= 116273) /* Don't annoy other team mates (forgot this for state v7). */
+    if (   SSMR3HandleRevision(pSSM) >= 116273
+        || SSMR3HandleVersion(pSSM)  >= VBOX_FULL_VERSION_MAKE(5, 1, 24))
     {
         rc = SSMR3GetU64(pSSM, &pThis->u64WalClk);
         AssertRC(rc);
@@ -5241,11 +5258,13 @@ static DECLCALLBACK(int) hdaLoadExec(PPDMDEVINS pDevIns, PSSMHANDLE pSSM, uint32
 
         /*
          * Load period state.
+         * Don't annoy other team mates (forgot this for state v7).
          */
         hdaStreamPeriodInit(&pStrm->State.Period,
                             pStrm->u8SD, pStrm->u16LVI, pStrm->u32CBL, &pStrm->State.strmCfg);
 
-        if (SSMR3HandleRevision(pSSM) >= 116273) /* Don't annoy other team mates (forgot this for state v7). */
+        if (   SSMR3HandleRevision(pSSM) >= 116273
+            || SSMR3HandleVersion(pSSM)  >= VBOX_FULL_VERSION_MAKE(5, 1, 24))
         {
             rc = SSMR3GetStructEx(pSSM, &pStrm->State.Period, sizeof(HDASTREAMPERIOD),
                                   0 /* fFlags */, g_aSSMStreamPeriodFields7, NULL);
diff --git a/src/VBox/Devices/Audio/DevIchAc97.cpp b/src/VBox/Devices/Audio/DevIchAc97.cpp
index 3d73bbe..4665c4c 100644
--- a/src/VBox/Devices/Audio/DevIchAc97.cpp
+++ b/src/VBox/Devices/Audio/DevIchAc97.cpp
@@ -598,15 +598,33 @@ static DECLCALLBACK(void) ichac97CloseIn(PAC97STATE pThis, PDMAUDIORECSOURCE enm
     PAC97DRIVER pDrv;
     RTListForEach(&pThis->lstDrv, pDrv, AC97DRIVER, Node)
     {
-        PAC97INPUTSTREAM pStrmIn;
-        if (enmRecSource == PDMAUDIORECSOURCE_MIC) /** @todo Refine this once we have more streams. */
+        PAUDMIXSINK      pSink   = NULL;
+        PAC97INPUTSTREAM pStrmIn = NULL;
+        if (enmRecSource == PDMAUDIORECSOURCE_MIC)
+        {
+            pSink   = pThis->pSinkMicIn;
             pStrmIn = &pDrv->MicIn;
-        else
+        }
+        else if (enmRecSource == PDMAUDIORECSOURCE_LINE_IN)
+        {
+            pSink   = pThis->pSinkLineIn;
             pStrmIn = &pDrv->LineIn;
+        }
+        else
+            AssertMsgFailed(("Audio source %ld not supported\n", enmRecSource));
+
+        if (pSink)
+            AudioMixerRemoveStream(pSink, pStrmIn->phStrmIn);
+
+        pStrmIn->phStrmIn = NULL;
 
-        pDrv->pConnector->pfnDestroyIn(pDrv->pConnector, pStrmIn->pStrmIn);
-        LogFlowFunc(("LUN#%RU8: Destroyed input\n", pDrv->uLUN));
-        pStrmIn = NULL;
+        if (pStrmIn->pStrmIn)
+        {
+            pDrv->pConnector->pfnDestroyIn(pDrv->pConnector, pStrmIn->pStrmIn);
+            LogFlowFunc(("LUN#%RU8: Destroyed input\n", pDrv->uLUN));
+        }
+
+        pStrmIn->pStrmIn = NULL;
     }
 }
 
@@ -617,6 +635,11 @@ static DECLCALLBACK(void) ichac97CloseOut(PAC97STATE pThis)
     PAC97DRIVER pDrv;
     RTListForEach(&pThis->lstDrv, pDrv, AC97DRIVER, Node)
     {
+        if (pThis->pSinkOutput)
+            AudioMixerRemoveStream(pThis->pSinkOutput, pDrv->Out.phStrmOut);
+
+        pDrv->Out.phStrmOut = NULL;
+
         if (pDrv->Out.pStrmOut)
         {
             pDrv->pConnector->pfnDestroyOut(pDrv->pConnector, pDrv->Out.pStrmOut);
@@ -666,6 +689,9 @@ static int ichac97OpenIn(PAC97STATE pThis,
         else
             pStrmIn = &pDrv->LineIn;
 
+        AudioMixerRemoveStream(pSink, pStrmIn->phStrmIn);
+        pStrmIn->phStrmIn = NULL;
+
         if (pStrmIn->pStrmIn)
         {
             pDrv->pConnector->pfnDestroyIn(pDrv->pConnector, pStrmIn->pStrmIn);
@@ -673,11 +699,9 @@ static int ichac97OpenIn(PAC97STATE pThis,
         }
 
         rc = pDrv->pConnector->pfnCreateIn(pDrv->pConnector, pszDesc, enmRecSource, pCfg, &pStrmIn->pStrmIn);
-
         LogFlowFunc(("LUN#%RU8: Created input \"%s\", with rc=%Rrc\n", pDrv->uLUN, pszDesc, rc));
         if (rc == VINF_SUCCESS) /* Note: Could return VWRN_ALREADY_EXISTS. */
         {
-            AudioMixerRemoveStream(pSink, pStrmIn->phStrmIn);
             rc = AudioMixerAddStreamIn(pSink,
                                        pDrv->pConnector, pStrmIn->pStrmIn,
                                        0 /* uFlags */, &pStrmIn->phStrmIn);
@@ -709,6 +733,9 @@ static int ichac97OpenOut(PAC97STATE pThis, const char *pszName, PPDMAUDIOSTREAM
             break;
         }
 
+        AudioMixerRemoveStream(pThis->pSinkOutput, pDrv->Out.phStrmOut);
+        pDrv->Out.phStrmOut = NULL;
+
         if (pDrv->Out.pStrmOut)
         {
             pDrv->pConnector->pfnDestroyOut(pDrv->pConnector, pDrv->Out.pStrmOut);
@@ -717,9 +744,9 @@ static int ichac97OpenOut(PAC97STATE pThis, const char *pszName, PPDMAUDIOSTREAM
 
         rc = pDrv->pConnector->pfnCreateOut(pDrv->pConnector, pszDesc, pCfg, &pDrv->Out.pStrmOut);
         LogFlowFunc(("LUN#%RU8: Created output \"%s\", with rc=%Rrc\n", pDrv->uLUN, pszDesc, rc));
+
         if (rc == VINF_SUCCESS) /* Note: Could return VWRN_ALREADY_EXISTS. */
         {
-            AudioMixerRemoveStream(pThis->pSinkOutput, pDrv->Out.phStrmOut);
             rc = AudioMixerAddStreamOut(pThis->pSinkOutput,
                                         pDrv->pConnector, pDrv->Out.pStrmOut,
                                         0 /* uFlags */, &pDrv->Out.phStrmOut);
@@ -1895,6 +1922,15 @@ static DECLCALLBACK(int) ichac97IOPortNAMWrite(PPDMDEVINS pDevIns,
                 case AC97_Record_Select:
                     ichac97RecordSelect(pThis, u32Val);
                     break;
+                case AC97_Record_Gain_Mute:
+                    /* Newer Ubuntu guests rely on that when controlling gain and muting
+                     * the recording (capturing) levels. */
+                    ichac97MixerSetVolume(pThis, index, PDMAUDIOMIXERCTL_LINE_IN, u32Val);
+                    break;
+                case AC97_Record_Gain_Mic_Mute:
+                    /* Ditto; see note above. */
+                    ichac97MixerSetVolume(pThis, index, PDMAUDIOMIXERCTL_MIC_IN,  u32Val);
+                    break;
                 case AC97_Vendor_ID1:
                 case AC97_Vendor_ID2:
                     LogFlowFunc(("Attempt to write vendor ID to %#x\n", u32Val));
diff --git a/src/VBox/Devices/Audio/DrvAudio.cpp b/src/VBox/Devices/Audio/DrvAudio.cpp
index 6d28a6e..6da74cd 100644
--- a/src/VBox/Devices/Audio/DrvAudio.cpp
+++ b/src/VBox/Devices/Audio/DrvAudio.cpp
@@ -689,7 +689,10 @@ int drvAudioDestroyGstOut(PDRVAUDIO pThis, PPDMAUDIOGSTSTRMOUT pGstStrmOut)
         return VINF_SUCCESS;
 
     if (pGstStrmOut->State.cRefs > 1) /* Do other objects still have a reference to it? Bail out. */
+    {
+        AssertMsgFailed(("Stream %p still being used (cRefs=%RU8)\n", pGstStrmOut, pGstStrmOut->State.cRefs));
         return VERR_WRONG_ORDER;
+    }
 
     drvAudioGstOutFreeRes(pGstStrmOut);
 
@@ -1386,7 +1389,10 @@ static int drvAudioDestroyGstIn(PDRVAUDIO pThis, PPDMAUDIOGSTSTRMIN pGstStrmIn)
         return VINF_SUCCESS;
 
     if (pGstStrmIn->State.cRefs > 1) /* Do other objects still have a reference to it? Bail out. */
+    {
+        AssertMsgFailed(("Stream %p still being used (cRefs=%RU8)\n", pGstStrmIn, pGstStrmIn->State.cRefs));
         return VERR_WRONG_ORDER;
+    }
 
     drvAudioGstInFreeRes(pGstStrmIn);
 
diff --git a/src/VBox/Devices/Audio/DrvHostNullAudio.cpp b/src/VBox/Devices/Audio/DrvHostNullAudio.cpp
index 4f7e5f9..8dc68c7 100644
--- a/src/VBox/Devices/Audio/DrvHostNullAudio.cpp
+++ b/src/VBox/Devices/Audio/DrvHostNullAudio.cpp
@@ -286,6 +286,7 @@ static DECLCALLBACK(int) drvHostNullAudioFiniOut(PPDMIHOSTAUDIO pInterface, PPDM
         && pNullStrmOut->pu8PlayBuffer)
     {
         RTMemFree(pNullStrmOut->pu8PlayBuffer);
+        pNullStrmOut->pu8PlayBuffer = NULL;
     }
     return VINF_SUCCESS;
 }
diff --git a/src/VBox/Devices/Audio/DrvHostPulseAudio.cpp b/src/VBox/Devices/Audio/DrvHostPulseAudio.cpp
index 6302b4e..cc92b3c 100644
--- a/src/VBox/Devices/Audio/DrvHostPulseAudio.cpp
+++ b/src/VBox/Devices/Audio/DrvHostPulseAudio.cpp
@@ -1025,11 +1025,13 @@ static DECLCALLBACK(int) drvHostPulseAudioFiniIn(PPDMIHOSTAUDIO pInterface, PPDM
     if (pThisStrmIn->pStream)
     {
         pa_threaded_mainloop_lock(g_pMainLoop);
+
         pa_stream_disconnect(pThisStrmIn->pStream);
         pa_stream_unref(pThisStrmIn->pStream);
-        pa_threaded_mainloop_unlock(g_pMainLoop);
 
         pThisStrmIn->pStream = NULL;
+
+        pa_threaded_mainloop_unlock(g_pMainLoop);
     }
 
     return VINF_SUCCESS;
@@ -1046,11 +1048,20 @@ static DECLCALLBACK(int) drvHostPulseAudioFiniOut(PPDMIHOSTAUDIO pInterface, PPD
     if (pThisStrmOut->pStream)
     {
         pa_threaded_mainloop_lock(g_pMainLoop);
+
+        /* Make sure to cancel a pending draining operation, if any. */
+        if (pThisStrmOut->pDrainOp)
+        {
+            pa_operation_cancel(pThisStrmOut->pDrainOp);
+            pThisStrmOut->pDrainOp = NULL;
+        }
+
         pa_stream_disconnect(pThisStrmOut->pStream);
         pa_stream_unref(pThisStrmOut->pStream);
-        pa_threaded_mainloop_unlock(g_pMainLoop);
 
         pThisStrmOut->pStream = NULL;
+
+        pa_threaded_mainloop_unlock(g_pMainLoop);
     }
 
     if (pThisStrmOut->pvPCMBuf)
diff --git a/src/VBox/Devices/Bus/MsiCommon.cpp b/src/VBox/Devices/Bus/MsiCommon.cpp
index 7c4dd49..85288ff 100644
--- a/src/VBox/Devices/Bus/MsiCommon.cpp
+++ b/src/VBox/Devices/Bus/MsiCommon.cpp
@@ -273,8 +273,6 @@ int MsiInit(PPDMPCIDEV pDev, PPDMMSIREG pMsiReg)
         /* How many vectors we're capable of */
         iFlags |= iMmc;
     }
-    else
-        AssertReturn(cVectors == 1, VERR_TOO_MUCH_DATA);
 
     if (f64bit)
         iFlags |= VBOX_PCI_MSI_FLAGS_64BIT;
diff --git a/src/VBox/Devices/EFI/Firmware/AppPkg/Applications/Python/PyMod-2.7.2/Lib/ntpath.py b/src/VBox/Devices/EFI/Firmware/AppPkg/Applications/Python/PyMod-2.7.2/Lib/ntpath.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Scripts/ConvertMasmToNasm.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Scripts/ConvertMasmToNasm.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Scripts/UpdateBuildVersions.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Scripts/UpdateBuildVersions.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/C/PyEfiCompressor/setup.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/C/PyEfiCompressor/setup.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/C/PyUtility/setup.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/C/PyUtility/setup.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/AutoGen/AutoGen.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/AutoGen/AutoGen.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/AutoGen/BuildEngine.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/AutoGen/BuildEngine.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/AutoGen/GenC.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/AutoGen/GenC.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/AutoGen/GenDepex.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/AutoGen/GenDepex.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/AutoGen/GenMake.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/AutoGen/GenMake.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/AutoGen/GenPcdDb.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/AutoGen/GenPcdDb.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/AutoGen/InfSectionParser.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/AutoGen/InfSectionParser.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/AutoGen/StrGather.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/AutoGen/StrGather.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/AutoGen/UniClassObject.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/AutoGen/UniClassObject.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/BPDG/BPDG.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/BPDG/BPDG.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/BPDG/GenVpd.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/BPDG/GenVpd.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Common/Database.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Common/Database.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Common/DecClassObject.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Common/DecClassObject.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Common/Dictionary.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Common/Dictionary.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Common/DscClassObject.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Common/DscClassObject.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Common/EdkIIWorkspace.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Common/EdkIIWorkspace.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Common/EdkIIWorkspaceBuild.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Common/EdkIIWorkspaceBuild.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Common/EdkLogger.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Common/EdkLogger.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Common/Expression.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Common/Expression.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Common/FdfClassObject.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Common/FdfClassObject.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Common/FdfParserLite.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Common/FdfParserLite.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Common/Identification.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Common/Identification.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Common/InfClassObject.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Common/InfClassObject.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Common/LongFilePathOs.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Common/LongFilePathOs.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Common/LongFilePathOsPath.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Common/LongFilePathOsPath.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Common/LongFilePathSupport.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Common/LongFilePathSupport.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Common/MigrationUtilities.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Common/MigrationUtilities.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Common/Misc.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Common/Misc.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Common/Parsing.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Common/Parsing.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Common/String.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Common/String.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Common/TargetTxtClassObject.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Common/TargetTxtClassObject.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Common/ToolDefClassObject.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Common/ToolDefClassObject.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Common/VpdInfoFile.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Common/VpdInfoFile.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/CommonDataClass/CommonClass.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/CommonDataClass/CommonClass.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/CommonDataClass/FdfClass.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/CommonDataClass/FdfClass.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/CommonDataClass/ModuleClass.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/CommonDataClass/ModuleClass.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/CommonDataClass/PackageClass.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/CommonDataClass/PackageClass.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/CommonDataClass/PlatformClass.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/CommonDataClass/PlatformClass.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Ecc/C.g b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Ecc/C.g
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Ecc/CLexer.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Ecc/CLexer.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Ecc/CParser.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Ecc/CParser.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Ecc/Check.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Ecc/Check.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Ecc/CodeFragment.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Ecc/CodeFragment.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Ecc/CodeFragmentCollector.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Ecc/CodeFragmentCollector.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Ecc/Configuration.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Ecc/Configuration.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Ecc/Database.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Ecc/Database.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Ecc/Ecc.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Ecc/Ecc.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Ecc/Exception.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Ecc/Exception.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Ecc/FileProfile.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Ecc/FileProfile.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Ecc/MetaDataParser.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Ecc/MetaDataParser.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Ecc/MetaFileWorkspace/MetaDataTable.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Ecc/MetaFileWorkspace/MetaDataTable.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Ecc/MetaFileWorkspace/MetaFileParser.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Ecc/MetaFileWorkspace/MetaFileParser.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Ecc/MetaFileWorkspace/MetaFileTable.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Ecc/MetaFileWorkspace/MetaFileTable.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Ecc/ParserWarning.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Ecc/ParserWarning.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Ecc/Xml/XmlRoutines.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Ecc/Xml/XmlRoutines.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Ecc/c.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Ecc/c.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Eot/CLexer.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Eot/CLexer.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Eot/CParser.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Eot/CParser.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Eot/CodeFragment.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Eot/CodeFragment.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Eot/CodeFragmentCollector.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Eot/CodeFragmentCollector.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Eot/Database.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Eot/Database.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Eot/Eot.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Eot/Eot.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Eot/EotGlobalData.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Eot/EotGlobalData.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Eot/FileProfile.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Eot/FileProfile.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Eot/FvImage.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Eot/FvImage.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Eot/InfParserLite.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Eot/InfParserLite.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Eot/Parser.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Eot/Parser.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Eot/ParserWarning.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Eot/ParserWarning.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Eot/Report.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Eot/Report.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Eot/c.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Eot/c.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/GenFds/AprioriSection.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/GenFds/AprioriSection.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/GenFds/Attribute.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/GenFds/Attribute.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/GenFds/Capsule.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/GenFds/Capsule.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/GenFds/CapsuleData.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/GenFds/CapsuleData.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/GenFds/ComponentStatement.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/GenFds/ComponentStatement.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/GenFds/CompressSection.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/GenFds/CompressSection.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/GenFds/DataSection.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/GenFds/DataSection.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/GenFds/DepexSection.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/GenFds/DepexSection.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/GenFds/EfiSection.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/GenFds/EfiSection.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/GenFds/Fd.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/GenFds/Fd.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/GenFds/FdfParser.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/GenFds/FdfParser.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/GenFds/Ffs.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/GenFds/Ffs.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/GenFds/FfsFileStatement.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/GenFds/FfsFileStatement.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/GenFds/FfsInfStatement.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/GenFds/FfsInfStatement.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/GenFds/Fv.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/GenFds/Fv.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/GenFds/FvImageSection.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/GenFds/FvImageSection.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/GenFds/GenFds.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/GenFds/GenFds.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/GenFds/GenFdsGlobalVariable.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/GenFds/GenFdsGlobalVariable.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/GenFds/GuidSection.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/GenFds/GuidSection.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/GenFds/OptRomFileStatement.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/GenFds/OptRomFileStatement.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/GenFds/OptRomInfStatement.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/GenFds/OptRomInfStatement.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/GenFds/OptionRom.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/GenFds/OptionRom.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/GenFds/Region.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/GenFds/Region.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/GenFds/Rule.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/GenFds/Rule.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/GenFds/RuleComplexFile.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/GenFds/RuleComplexFile.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/GenFds/RuleSimpleFile.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/GenFds/RuleSimpleFile.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/GenFds/Section.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/GenFds/Section.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/GenFds/UiSection.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/GenFds/UiSection.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/GenFds/VerSection.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/GenFds/VerSection.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/GenFds/Vtf.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/GenFds/Vtf.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/GenPatchPcdTable/GenPatchPcdTable.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/GenPatchPcdTable/GenPatchPcdTable.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/PatchPcdValue/PatchPcdValue.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/PatchPcdValue/PatchPcdValue.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Rsa2048Sha256Sign/Rsa2048Sha256GenerateKeys.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Rsa2048Sha256Sign/Rsa2048Sha256GenerateKeys.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Rsa2048Sha256Sign/Rsa2048Sha256Sign.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Rsa2048Sha256Sign/Rsa2048Sha256Sign.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Table/Table.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Table/Table.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Table/TableDataModel.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Table/TableDataModel.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Table/TableDec.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Table/TableDec.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Table/TableDsc.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Table/TableDsc.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Table/TableEotReport.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Table/TableEotReport.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Table/TableFdf.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Table/TableFdf.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Table/TableFile.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Table/TableFile.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Table/TableFunction.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Table/TableFunction.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Table/TableIdentifier.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Table/TableIdentifier.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Table/TableInf.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Table/TableInf.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Table/TablePcd.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Table/TablePcd.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Table/TableQuery.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Table/TableQuery.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Table/TableReport.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Table/TableReport.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/TargetTool/TargetTool.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/TargetTool/TargetTool.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Trim/Trim.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Trim/Trim.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Core/DependencyRules.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Core/DependencyRules.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Core/DistributionPackageClass.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Core/DistributionPackageClass.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Core/FileHook.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Core/FileHook.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Core/IpiDb.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Core/IpiDb.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Core/PackageFile.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Core/PackageFile.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/GenMetaFile/GenDecFile.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/GenMetaFile/GenDecFile.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/GenMetaFile/GenInfFile.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/GenMetaFile/GenInfFile.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/GenMetaFile/GenMetaFileMisc.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/GenMetaFile/GenMetaFileMisc.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/InstallPkg.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/InstallPkg.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/InventoryWs.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/InventoryWs.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Library/CommentGenerating.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Library/CommentGenerating.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Library/CommentParsing.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Library/CommentParsing.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Library/ExpressionValidate.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Library/ExpressionValidate.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Library/Misc.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Library/Misc.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Library/ParserValidate.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Library/ParserValidate.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Library/Parsing.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Library/Parsing.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Library/String.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Library/String.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Library/UniClassObject.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Library/UniClassObject.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Library/Xml/XmlRoutines.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Library/Xml/XmlRoutines.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Logger/Log.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Logger/Log.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/MkPkg.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/MkPkg.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Object/POM/CommonObject.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Object/POM/CommonObject.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Object/POM/ModuleObject.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Object/POM/ModuleObject.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Object/POM/PackageObject.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Object/POM/PackageObject.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Object/Parser/DecObject.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Object/Parser/DecObject.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Object/Parser/InfBinaryObject.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Object/Parser/InfBinaryObject.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Object/Parser/InfBuildOptionObject.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Object/Parser/InfBuildOptionObject.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Object/Parser/InfCommonObject.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Object/Parser/InfCommonObject.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Object/Parser/InfDefineCommonObject.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Object/Parser/InfDefineCommonObject.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Object/Parser/InfDefineObject.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Object/Parser/InfDefineObject.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Object/Parser/InfDepexObject.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Object/Parser/InfDepexObject.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Object/Parser/InfGuidObject.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Object/Parser/InfGuidObject.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Object/Parser/InfHeaderObject.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Object/Parser/InfHeaderObject.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Object/Parser/InfLibraryClassesObject.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Object/Parser/InfLibraryClassesObject.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Object/Parser/InfMisc.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Object/Parser/InfMisc.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Object/Parser/InfPackagesObject.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Object/Parser/InfPackagesObject.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Object/Parser/InfPcdObject.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Object/Parser/InfPcdObject.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Object/Parser/InfPpiObject.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Object/Parser/InfPpiObject.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Object/Parser/InfProtocolObject.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Object/Parser/InfProtocolObject.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Object/Parser/InfSoucesObject.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Object/Parser/InfSoucesObject.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Object/Parser/InfUserExtensionObject.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Object/Parser/InfUserExtensionObject.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Parser/DecParser.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Parser/DecParser.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Parser/DecParserMisc.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Parser/DecParserMisc.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Parser/InfAsBuiltProcess.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Parser/InfAsBuiltProcess.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Parser/InfBinarySectionParser.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Parser/InfBinarySectionParser.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Parser/InfBuildOptionSectionParser.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Parser/InfBuildOptionSectionParser.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Parser/InfDefineSectionParser.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Parser/InfDefineSectionParser.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Parser/InfDepexSectionParser.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Parser/InfDepexSectionParser.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Parser/InfGuidPpiProtocolSectionParser.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Parser/InfGuidPpiProtocolSectionParser.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Parser/InfLibrarySectionParser.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Parser/InfLibrarySectionParser.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Parser/InfPackageSectionParser.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Parser/InfPackageSectionParser.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Parser/InfParser.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Parser/InfParser.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Parser/InfParserMisc.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Parser/InfParserMisc.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Parser/InfPcdSectionParser.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Parser/InfPcdSectionParser.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Parser/InfSectionParser.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Parser/InfSectionParser.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Parser/InfSourceSectionParser.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Parser/InfSourceSectionParser.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/PomAdapter/DecPomAlignment.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/PomAdapter/DecPomAlignment.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/PomAdapter/InfPomAlignment.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/PomAdapter/InfPomAlignment.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/PomAdapter/InfPomAlignmentMisc.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/PomAdapter/InfPomAlignmentMisc.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/ReplacePkg.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/ReplacePkg.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/RmPkg.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/RmPkg.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/UPT.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/UPT.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/UnitTest/CommentGeneratingUnitTest.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/UnitTest/CommentGeneratingUnitTest.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/UnitTest/CommentParsingUnitTest.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/UnitTest/CommentParsingUnitTest.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/UnitTest/DecParserTest.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/UnitTest/DecParserTest.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/UnitTest/DecParserUnitTest.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/UnitTest/DecParserUnitTest.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/UnitTest/InfBinarySectionTest.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/UnitTest/InfBinarySectionTest.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Xml/CommonXml.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Xml/CommonXml.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Xml/GuidProtocolPpiXml.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Xml/GuidProtocolPpiXml.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Xml/IniToXml.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Xml/IniToXml.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Xml/ModuleSurfaceAreaXml.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Xml/ModuleSurfaceAreaXml.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Xml/PackageSurfaceAreaXml.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Xml/PackageSurfaceAreaXml.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Xml/PcdXml.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Xml/PcdXml.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Xml/XmlParser.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Xml/XmlParser.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Xml/XmlParserMisc.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Xml/XmlParserMisc.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Workspace/BuildClassObject.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Workspace/BuildClassObject.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Workspace/MetaDataTable.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Workspace/MetaDataTable.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Workspace/MetaFileCommentParser.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Workspace/MetaFileCommentParser.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Workspace/MetaFileParser.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Workspace/MetaFileParser.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Workspace/MetaFileTable.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Workspace/MetaFileTable.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Workspace/WorkspaceCommon.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Workspace/WorkspaceCommon.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Workspace/WorkspaceDatabase.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Workspace/WorkspaceDatabase.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/build/BuildReport.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/build/BuildReport.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/build/build.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/build/build.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/IntelFspPkg/FspSecCore/Vtf0/Build.py b/src/VBox/Devices/EFI/Firmware/IntelFspPkg/FspSecCore/Vtf0/Build.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/IntelFspPkg/FspSecCore/Vtf0/Tools/FixupForRawSection.py b/src/VBox/Devices/EFI/Firmware/IntelFspPkg/FspSecCore/Vtf0/Tools/FixupForRawSection.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/IntelFspPkg/Tools/GenCfgOpt.py b/src/VBox/Devices/EFI/Firmware/IntelFspPkg/Tools/GenCfgOpt.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/IntelFspPkg/Tools/PatchFv.py b/src/VBox/Devices/EFI/Firmware/IntelFspPkg/Tools/PatchFv.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/IntelFspWrapperPkg/FspWrapperSecCore/Vtf0/Build.py b/src/VBox/Devices/EFI/Firmware/IntelFspWrapperPkg/FspWrapperSecCore/Vtf0/Build.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/IntelFspWrapperPkg/FspWrapperSecCore/Vtf0/Tools/FixupForRawSection.py b/src/VBox/Devices/EFI/Firmware/IntelFspWrapperPkg/FspWrapperSecCore/Vtf0/Tools/FixupForRawSection.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/Firmware/UefiCpuPkg/ResetVector/Vtf0/Build.py b/src/VBox/Devices/EFI/Firmware/UefiCpuPkg/ResetVector/Vtf0/Build.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Devices/EFI/FirmwareBin/VBoxEFI32.fd b/src/VBox/Devices/EFI/FirmwareBin/VBoxEFI32.fd
index 0c847f1..6fcebca 100644
Binary files a/src/VBox/Devices/EFI/FirmwareBin/VBoxEFI32.fd and b/src/VBox/Devices/EFI/FirmwareBin/VBoxEFI32.fd differ
diff --git a/src/VBox/Devices/EFI/FirmwareBin/VBoxEFI64.fd b/src/VBox/Devices/EFI/FirmwareBin/VBoxEFI64.fd
index 62dce60..2bf7f70 100644
Binary files a/src/VBox/Devices/EFI/FirmwareBin/VBoxEFI64.fd and b/src/VBox/Devices/EFI/FirmwareBin/VBoxEFI64.fd differ
diff --git a/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative286.asm b/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative286.asm
index 6a8dbd4..9415e5d 100644
--- a/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative286.asm
+++ b/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative286.asm
@@ -7293,7 +7293,7 @@ vesa_pm_end:                                 ; 0xc4514 LB 0x1
 
 section _DATA progbits vstart=0x4600 align=1 ; size=0x371f class=DATA group=DGROUP
 _msg_vga_init:                               ; 0xc4600 LB 0x2f
-    db  'Oracle VM VirtualBox Version 5.1.22 VGA BIOS', 00dh, 00ah, 000h
+    db  'Oracle VM VirtualBox Version 5.1.26 VGA BIOS', 00dh, 00ah, 000h
 _vga_modes:                                  ; 0xc462f LB 0x80
     db  000h, 000h, 000h, 004h, 000h, 0b8h, 0ffh, 002h, 001h, 000h, 000h, 004h, 000h, 0b8h, 0ffh, 002h
     db  002h, 000h, 000h, 004h, 000h, 0b8h, 0ffh, 002h, 003h, 000h, 000h, 004h, 000h, 0b8h, 0ffh, 002h
@@ -8188,7 +8188,7 @@ _vbebios_vendor_name:                        ; 0xc7c73 LB 0x13
 _vbebios_product_name:                       ; 0xc7c86 LB 0x21
     db  'Oracle VM VirtualBox VBE Adapter', 000h
 _vbebios_product_revision:                   ; 0xc7ca7 LB 0x24
-    db  'Oracle VM VirtualBox Version 5.1.22', 000h
+    db  'Oracle VM VirtualBox Version 5.1.26', 000h
 _vbebios_info_string:                        ; 0xc7ccb LB 0x2b
     db  'VirtualBox VBE Display Adapter enabled', 00dh, 00ah, 00dh, 00ah, 000h
 _no_vbebios_info_string:                     ; 0xc7cf6 LB 0x29
@@ -8247,4 +8247,4 @@ section CONST2 progbits vstart=0x7d20 align=1 ; size=0x0 class=DATA group=DGROUP
     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0c2h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0bah
diff --git a/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative286.md5sum b/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative286.md5sum
index 1c01dbb..a0ccbe8 100644
--- a/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative286.md5sum
+++ b/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative286.md5sum
@@ -1 +1 @@
-bea8c51c86610c7dd6cb0d7bca5099cd *VBoxVgaBios286.rom
+326be6c4a0cb651ace7cf21277ec180b *VBoxVgaBios286.rom
diff --git a/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative386.asm b/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative386.asm
index 55e747b..e9dd060 100644
--- a/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative386.asm
+++ b/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative386.asm
@@ -6769,7 +6769,7 @@ vesa_pm_end:                                 ; 0xc4514 LB 0x1
 
 section _DATA progbits vstart=0x4600 align=1 ; size=0x371f class=DATA group=DGROUP
 _msg_vga_init:                               ; 0xc4600 LB 0x2f
-    db  'Oracle VM VirtualBox Version 5.1.22 VGA BIOS', 00dh, 00ah, 000h
+    db  'Oracle VM VirtualBox Version 5.1.26 VGA BIOS', 00dh, 00ah, 000h
 _vga_modes:                                  ; 0xc462f LB 0x80
     db  000h, 000h, 000h, 004h, 000h, 0b8h, 0ffh, 002h, 001h, 000h, 000h, 004h, 000h, 0b8h, 0ffh, 002h
     db  002h, 000h, 000h, 004h, 000h, 0b8h, 0ffh, 002h, 003h, 000h, 000h, 004h, 000h, 0b8h, 0ffh, 002h
@@ -7664,7 +7664,7 @@ _vbebios_vendor_name:                        ; 0xc7c73 LB 0x13
 _vbebios_product_name:                       ; 0xc7c86 LB 0x21
     db  'Oracle VM VirtualBox VBE Adapter', 000h
 _vbebios_product_revision:                   ; 0xc7ca7 LB 0x24
-    db  'Oracle VM VirtualBox Version 5.1.22', 000h
+    db  'Oracle VM VirtualBox Version 5.1.26', 000h
 _vbebios_info_string:                        ; 0xc7ccb LB 0x2b
     db  'VirtualBox VBE Display Adapter enabled', 00dh, 00ah, 00dh, 00ah, 000h
 _no_vbebios_info_string:                     ; 0xc7cf6 LB 0x29
@@ -7723,4 +7723,4 @@ section CONST2 progbits vstart=0x7d20 align=1 ; size=0x0 class=DATA group=DGROUP
     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0b7h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0afh
diff --git a/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative386.md5sum b/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative386.md5sum
index 4b18acf..875779c 100644
--- a/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative386.md5sum
+++ b/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative386.md5sum
@@ -1 +1 @@
-fb0f61a5bd7fdceb5c41b3a5dca0cd69 *VBoxVgaBios386.rom
+75d6b37bd37fff92e965abd6afb14790 *VBoxVgaBios386.rom
diff --git a/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative8086.asm b/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative8086.asm
index 27ac782..a64d7e3 100644
--- a/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative8086.asm
+++ b/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative8086.asm
@@ -7434,7 +7434,7 @@ vesa_pm_end:                                 ; 0xc4514 LB 0x1
 
 section _DATA progbits vstart=0x4600 align=1 ; size=0x371f class=DATA group=DGROUP
 _msg_vga_init:                               ; 0xc4600 LB 0x2f
-    db  'Oracle VM VirtualBox Version 5.1.22 VGA BIOS', 00dh, 00ah, 000h
+    db  'Oracle VM VirtualBox Version 5.1.26 VGA BIOS', 00dh, 00ah, 000h
 _vga_modes:                                  ; 0xc462f LB 0x80
     db  000h, 000h, 000h, 004h, 000h, 0b8h, 0ffh, 002h, 001h, 000h, 000h, 004h, 000h, 0b8h, 0ffh, 002h
     db  002h, 000h, 000h, 004h, 000h, 0b8h, 0ffh, 002h, 003h, 000h, 000h, 004h, 000h, 0b8h, 0ffh, 002h
@@ -8329,7 +8329,7 @@ _vbebios_vendor_name:                        ; 0xc7c73 LB 0x13
 _vbebios_product_name:                       ; 0xc7c86 LB 0x21
     db  'Oracle VM VirtualBox VBE Adapter', 000h
 _vbebios_product_revision:                   ; 0xc7ca7 LB 0x24
-    db  'Oracle VM VirtualBox Version 5.1.22', 000h
+    db  'Oracle VM VirtualBox Version 5.1.26', 000h
 _vbebios_info_string:                        ; 0xc7ccb LB 0x2b
     db  'VirtualBox VBE Display Adapter enabled', 00dh, 00ah, 00dh, 00ah, 000h
 _no_vbebios_info_string:                     ; 0xc7cf6 LB 0x29
@@ -8388,4 +8388,4 @@ section CONST2 progbits vstart=0x7d20 align=1 ; size=0x0 class=DATA group=DGROUP
     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
     db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h
-    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 049h
+    db  000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 041h
diff --git a/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative8086.md5sum b/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative8086.md5sum
index f663267..e35a99f 100644
--- a/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative8086.md5sum
+++ b/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative8086.md5sum
@@ -1 +1 @@
-e4f13f730d0128276421351a5c6030fd *VBoxVgaBios8086.rom
+82a86024dd5cdec4cd7b7e8df7ee85ce *VBoxVgaBios8086.rom
diff --git a/src/VBox/Devices/Input/PS2M.cpp b/src/VBox/Devices/Input/PS2M.cpp
index 9f5cadd..0a0e15a 100644
--- a/src/VBox/Devices/Input/PS2M.cpp
+++ b/src/VBox/Devices/Input/PS2M.cpp
@@ -105,7 +105,6 @@
 #define IN_PS2M
 #include "PS2Dev.h"
 
-
 /*********************************************************************************************************************************
 *   Defined Constants And Macros                                                                                                 *
 *********************************************************************************************************************************/
@@ -297,6 +296,13 @@ AssertCompile(PS2M_STRUCT_FILLER >= sizeof(PS2M));
 
 
 /*********************************************************************************************************************************
+*   Test code function declarations                                                                                              *
+*********************************************************************************************************************************/
+#if defined(RT_STRICT) && defined(IN_RING3)
+static void ps2mTestAccumulation(void);
+#endif
+
+/*********************************************************************************************************************************
 *   Global Variables                                                                                                             *
 *********************************************************************************************************************************/
 
@@ -831,6 +837,13 @@ int PS2MByteFromAux(PPS2M pThis, uint8_t *pb)
 
 #ifdef IN_RING3
 
+/** Is there any state change to send as events to the guest? */
+static uint32_t ps2mHaveEvents(PPS2M pThis)
+{
+    return   pThis->iAccumX | pThis->iAccumY | pThis->iAccumZ
+           | (pThis->fCurrB != pThis->fReportedB) | (pThis->fAccumB != 0);
+}
+
 /* Event rate throttling timer to emulate the auxiliary device sampling rate.
  */
 static DECLCALLBACK(void) ps2mThrottleTimer(PPDMDEVINS pDevIns, PTMTIMER pTimer, void *pvUser)
@@ -847,7 +860,7 @@ static DECLCALLBACK(void) ps2mThrottleTimer(PPDMDEVINS pDevIns, PTMTIMER pTimer,
     /* If the input queue is not empty, restart the timer. */
 #else
     /* If more movement is accumulated, report it and restart the timer. */
-    uHaveEvents = pThis->iAccumX | pThis->iAccumY | pThis->iAccumZ | (pThis->fCurrB != pThis->fReportedB);
+    uHaveEvents = ps2mHaveEvents(pThis);
     LogFlowFunc(("Have%s events\n", uHaveEvents ? "" : " no"));
 
     if (uHaveEvents)
@@ -1185,6 +1198,10 @@ int PS2MConstruct(PPS2M pThis, PPDMDEVINS pDevIns, void *pParent, int iInstance)
 
     LogFlowFunc(("iInstance=%d\n", iInstance));
 
+#ifdef RT_STRICT
+    ps2mTestAccumulation();
+#endif
+
     pThis->pParent = pParent;
 
     /* Initialize the queues. */
@@ -1241,4 +1258,69 @@ int PS2MConstruct(PPS2M pThis, PPDMDEVINS pDevIns, void *pParent, int iInstance)
 
 #endif
 
+#if defined(RT_STRICT) && defined(IN_RING3)
+/* -=-=-=-=-=- Test code  -=-=-=-=-=- */
+
+/** Test the event accumulation mechanism which we use to delay events going
+ * to the guest to one per 10ms (the default PS/2 mouse event rate).  This
+ * test depends on ps2mPutEventWorker() not touching the timer if
+ * This.fThrottleActive is true. */
+/** @todo if we add any more tests it might be worth using a table of test
+ * operations and checks. */
+static void ps2mTestAccumulation(void)
+{
+    PS2M This;
+    unsigned i;
+    int rc;
+    uint8_t b;
+
+    RT_ZERO(This);
+    This.evtQ.cSize = AUX_EVT_QUEUE_SIZE;
+    This.u8State = AUX_STATE_ENABLED;
+    This.fThrottleActive = true;
+    /* Certain Windows touch pad drivers report a double tap as a press, then
+     * a release-press-release all within a single 10ms interval.  Simulate
+     * this to check that it is handled right. */
+    ps2mPutEventWorker(&This, 0, 0, 0, 0, 1);
+    if (ps2mHaveEvents(&This))
+        ps2mReportAccumulatedEvents(&This, (GeneriQ *)&This.evtQ, true);
+    ps2mPutEventWorker(&This, 0, 0, 0, 0, 0);
+    if (ps2mHaveEvents(&This))
+        ps2mReportAccumulatedEvents(&This, (GeneriQ *)&This.evtQ, true);
+    ps2mPutEventWorker(&This, 0, 0, 0, 0, 1);
+    ps2mPutEventWorker(&This, 0, 0, 0, 0, 0);
+    if (ps2mHaveEvents(&This))
+        ps2mReportAccumulatedEvents(&This, (GeneriQ *)&This.evtQ, true);
+    if (ps2mHaveEvents(&This))
+        ps2mReportAccumulatedEvents(&This, (GeneriQ *)&This.evtQ, true);
+    for (i = 0; i < 12; ++i)
+    {
+        const uint8_t abExpected[] = { 9, 0, 0, 8, 0, 0, 9, 0, 0, 8, 0, 0};
+
+        rc = PS2MByteFromAux(&This, &b);
+        AssertRCSuccess(rc);
+        Assert(b == abExpected[i]);
+    }
+    rc = PS2MByteFromAux(&This, &b);
+    Assert(rc != VINF_SUCCESS);
+    /* Button hold down during mouse drags was broken at some point during
+     * testing fixes for the previous issue.  Test that that works. */
+    ps2mPutEventWorker(&This, 0, 0, 0, 0, 1);
+    if (ps2mHaveEvents(&This))
+        ps2mReportAccumulatedEvents(&This, (GeneriQ *)&This.evtQ, true);
+    if (ps2mHaveEvents(&This))
+        ps2mReportAccumulatedEvents(&This, (GeneriQ *)&This.evtQ, true);
+    for (i = 0; i < 3; ++i)
+    {
+        const uint8_t abExpected[] = { 9, 0, 0 };
+
+        rc = PS2MByteFromAux(&This, &b);
+        AssertRCSuccess(rc);
+        Assert(b == abExpected[i]);
+    }
+    rc = PS2MByteFromAux(&This, &b);
+    Assert(rc != VINF_SUCCESS);
+}
+#endif /* RT_STRICT && IN_RING3 */
+
 #endif /* !VBOX_DEVICE_STRUCT_TESTCASE */
diff --git a/src/VBox/Devices/Network/SrvIntNetR0.cpp b/src/VBox/Devices/Network/SrvIntNetR0.cpp
index 630c19c..12d56dc 100644
--- a/src/VBox/Devices/Network/SrvIntNetR0.cpp
+++ b/src/VBox/Devices/Network/SrvIntNetR0.cpp
@@ -5356,7 +5356,8 @@ static DECLCALLBACK(void) intnetR0TrunkIfPortDisconnect(PINTNETTRUNKSWPORT pSwit
          * (the other deadlock party), so we have to revalidate the network
          * pointer after taking ownership of the big mutex.
          */
-        pfnReleaseBusy(pIfPort);
+        if (pfnReleaseBusy)
+            pfnReleaseBusy(pIfPort);
 
         RTSemMutexRequest(pIntNet->hMtxCreateOpenDestroy, RT_INDEFINITE_WAIT);
 
@@ -5383,7 +5384,7 @@ static DECLCALLBACK(void) intnetR0TrunkIfPortDisconnect(PINTNETTRUNKSWPORT pSwit
     /*
      * We must always release the busy reference.
      */
-    else
+    else if (pfnReleaseBusy)
         pfnReleaseBusy(pIfPort);
 }
 
diff --git a/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative286.asm b/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative286.asm
index b252fff..f166a7e 100644
--- a/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative286.asm
+++ b/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative286.asm
@@ -1115,7 +1115,7 @@ section CONST progbits vstart=0xb0 align=1 ; size=0xcde class=DATA group=DGROUP
 
 section CONST2 progbits vstart=0xd8e align=1 ; size=0x3fa class=DATA group=DGROUP
 _bios_cvs_version_string:                    ; 0xf0d8e LB 0x12
-    db  'VirtualBox 5.1.22', 000h
+    db  'VirtualBox 5.1.26', 000h
 _bios_prefix_string:                         ; 0xf0da0 LB 0x8
     db  'BIOS: ', 000h, 000h
 _isotag:                                     ; 0xf0da8 LB 0x6
@@ -17807,4 +17807,4 @@ biosorg_check_before_or_at_0FFEEh:           ; 0xfff80 LB 0x70
     db  'XM'
 cpu_reset:                                   ; 0xffff0 LB 0x10
     jmp far 0f000h:0e05bh                     ; ea 5b e0 00 f0
-    db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 008h
+    db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 004h
diff --git a/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative286.md5sum b/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative286.md5sum
index 96963e2..0f09ff7 100644
--- a/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative286.md5sum
+++ b/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative286.md5sum
@@ -1 +1 @@
-9ebf26bea54c23402ea94fc80c406a72 *VBoxPcBios286.rom
+914de43f839609166c9b1eda2a7c5f80 *VBoxPcBios286.rom
diff --git a/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative386.asm b/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative386.asm
index 945672e..7b07370 100644
--- a/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative386.asm
+++ b/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative386.asm
@@ -1078,7 +1078,7 @@ section CONST progbits vstart=0xb0 align=1 ; size=0xcde class=DATA group=DGROUP
 
 section CONST2 progbits vstart=0xd8e align=1 ; size=0x3fa class=DATA group=DGROUP
 _bios_cvs_version_string:                    ; 0xf0d8e LB 0x12
-    db  'VirtualBox 5.1.22', 000h
+    db  'VirtualBox 5.1.26', 000h
 _bios_prefix_string:                         ; 0xf0da0 LB 0x8
     db  'BIOS: ', 000h, 000h
 _isotag:                                     ; 0xf0da8 LB 0x6
@@ -17198,4 +17198,4 @@ biosorg_check_before_or_at_0FFEEh:           ; 0xfff80 LB 0x70
     db  'XM'
 cpu_reset:                                   ; 0xffff0 LB 0x10
     jmp far 0f000h:0e05bh                     ; ea 5b e0 00 f0
-    db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 093h
+    db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 08fh
diff --git a/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative386.md5sum b/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative386.md5sum
index 8e5c896..2e94b1a 100644
--- a/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative386.md5sum
+++ b/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative386.md5sum
@@ -1 +1 @@
-c94600ef288bf0ea835c5f7a6e2d1a6d *VBoxPcBios386.rom
+98662db9f2c32d65e3eece58b4036104 *VBoxPcBios386.rom
diff --git a/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative8086.asm b/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative8086.asm
index caa5a81..27e6add 100644
--- a/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative8086.asm
+++ b/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative8086.asm
@@ -1115,7 +1115,7 @@ section CONST progbits vstart=0xb0 align=1 ; size=0xcde class=DATA group=DGROUP
 
 section CONST2 progbits vstart=0xd8e align=1 ; size=0x3fa class=DATA group=DGROUP
 _bios_cvs_version_string:                    ; 0xf0d8e LB 0x12
-    db  'VirtualBox 5.1.22', 000h
+    db  'VirtualBox 5.1.26', 000h
 _bios_prefix_string:                         ; 0xf0da0 LB 0x8
     db  'BIOS: ', 000h, 000h
 _isotag:                                     ; 0xf0da8 LB 0x6
@@ -18276,4 +18276,4 @@ biosorg_check_before_or_at_0FFEEh:           ; 0xfff80 LB 0x70
     db  'XM'
 cpu_reset:                                   ; 0xffff0 LB 0x10
     jmp far 0f000h:0e05bh                     ; ea 5b e0 00 f0
-    db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fbh, 0a1h
+    db  030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fbh, 09dh
diff --git a/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative8086.md5sum b/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative8086.md5sum
index ef0b631..1c30692 100644
--- a/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative8086.md5sum
+++ b/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative8086.md5sum
@@ -1 +1 @@
-377af5e9f379e0964bea3ae962495fb5 *VBoxPcBios8086.rom
+0793452f955e6c73d28177ea2fd968e3 *VBoxPcBios8086.rom
diff --git a/src/VBox/ExtPacks/VBoxDTrace/onnv/cmd/dtrace/demo/mkdemo.pl b/src/VBox/ExtPacks/VBoxDTrace/onnv/cmd/dtrace/demo/mkdemo.pl
old mode 100755
new mode 100644
diff --git a/src/VBox/ExtPacks/VBoxDTrace/onnv/cmd/dtrace/test/tst/common/ip/tst.ipv4localtcp.ksh b/src/VBox/ExtPacks/VBoxDTrace/onnv/cmd/dtrace/test/tst/common/ip/tst.ipv4localtcp.ksh
old mode 100755
new mode 100644
diff --git a/src/VBox/ExtPacks/VBoxDTrace/onnv/cmd/dtrace/test/tst/common/ip/tst.ipv4localudp.ksh b/src/VBox/ExtPacks/VBoxDTrace/onnv/cmd/dtrace/test/tst/common/ip/tst.ipv4localudp.ksh
old mode 100755
new mode 100644
diff --git a/src/VBox/ExtPacks/VBoxDTrace/onnv/cmd/dtrace/test/tst/common/ip/tst.ipv4remotetcp.ksh b/src/VBox/ExtPacks/VBoxDTrace/onnv/cmd/dtrace/test/tst/common/ip/tst.ipv4remotetcp.ksh
old mode 100755
new mode 100644
diff --git a/src/VBox/ExtPacks/VBoxDTrace/onnv/cmd/dtrace/test/tst/common/ip/tst.ipv4remoteudp.ksh b/src/VBox/ExtPacks/VBoxDTrace/onnv/cmd/dtrace/test/tst/common/ip/tst.ipv4remoteudp.ksh
old mode 100755
new mode 100644
diff --git a/src/VBox/ExtPacks/VBoxDTrace/onnv/cmd/dtrace/test/tst/common/ip/tst.localtcpstate.ksh b/src/VBox/ExtPacks/VBoxDTrace/onnv/cmd/dtrace/test/tst/common/ip/tst.localtcpstate.ksh
old mode 100755
new mode 100644
diff --git a/src/VBox/ExtPacks/VBoxDTrace/onnv/cmd/dtrace/test/tst/common/ip/tst.remotetcpstate.ksh b/src/VBox/ExtPacks/VBoxDTrace/onnv/cmd/dtrace/test/tst/common/ip/tst.remotetcpstate.ksh
old mode 100755
new mode 100644
diff --git a/src/VBox/ExtPacks/VBoxDTrace/onnv/cmd/dtrace/test/tst/common/scripting/err.D_MACRO_UNDEF.invalidargs.d b/src/VBox/ExtPacks/VBoxDTrace/onnv/cmd/dtrace/test/tst/common/scripting/err.D_MACRO_UNDEF.invalidargs.d
old mode 100755
new mode 100644
diff --git a/src/VBox/ExtPacks/VBoxDTrace/onnv/cmd/dtrace/test/tst/common/scripting/err.D_OP_LVAL.rdonly.d b/src/VBox/ExtPacks/VBoxDTrace/onnv/cmd/dtrace/test/tst/common/scripting/err.D_OP_LVAL.rdonly.d
old mode 100755
new mode 100644
diff --git a/src/VBox/ExtPacks/VBoxDTrace/onnv/cmd/dtrace/test/tst/common/scripting/err.D_OP_WRITE.usepidmacro.d b/src/VBox/ExtPacks/VBoxDTrace/onnv/cmd/dtrace/test/tst/common/scripting/err.D_OP_WRITE.usepidmacro.d
old mode 100755
new mode 100644
diff --git a/src/VBox/ExtPacks/VBoxDTrace/onnv/cmd/dtrace/test/tst/common/scripting/err.D_SYNTAX.inval.d b/src/VBox/ExtPacks/VBoxDTrace/onnv/cmd/dtrace/test/tst/common/scripting/err.D_SYNTAX.inval.d
old mode 100755
new mode 100644
diff --git a/src/VBox/ExtPacks/VBoxDTrace/onnv/cmd/dtrace/test/tst/common/scripting/err.D_SYNTAX.pid.d b/src/VBox/ExtPacks/VBoxDTrace/onnv/cmd/dtrace/test/tst/common/scripting/err.D_SYNTAX.pid.d
old mode 100755
new mode 100644
diff --git a/src/VBox/ExtPacks/VBoxDTrace/onnv/cmd/dtrace/test/tst/common/scripting/tst.arg0.d b/src/VBox/ExtPacks/VBoxDTrace/onnv/cmd/dtrace/test/tst/common/scripting/tst.arg0.d
old mode 100755
new mode 100644
diff --git a/src/VBox/ExtPacks/VBoxDTrace/onnv/cmd/dtrace/test/tst/common/scripting/tst.assign.d b/src/VBox/ExtPacks/VBoxDTrace/onnv/cmd/dtrace/test/tst/common/scripting/tst.assign.d
old mode 100755
new mode 100644
diff --git a/src/VBox/ExtPacks/VBoxDTrace/onnv/cmd/dtrace/test/tst/common/scripting/tst.basic.d b/src/VBox/ExtPacks/VBoxDTrace/onnv/cmd/dtrace/test/tst/common/scripting/tst.basic.d
old mode 100755
new mode 100644
diff --git a/src/VBox/ExtPacks/VBoxDTrace/onnv/cmd/dtrace/test/tst/common/scripting/tst.egid.d b/src/VBox/ExtPacks/VBoxDTrace/onnv/cmd/dtrace/test/tst/common/scripting/tst.egid.d
old mode 100755
new mode 100644
diff --git a/src/VBox/ExtPacks/VBoxDTrace/onnv/cmd/dtrace/test/tst/common/scripting/tst.euid.d b/src/VBox/ExtPacks/VBoxDTrace/onnv/cmd/dtrace/test/tst/common/scripting/tst.euid.d
old mode 100755
new mode 100644
diff --git a/src/VBox/ExtPacks/VBoxDTrace/onnv/cmd/dtrace/test/tst/common/scripting/tst.gid.d b/src/VBox/ExtPacks/VBoxDTrace/onnv/cmd/dtrace/test/tst/common/scripting/tst.gid.d
old mode 100755
new mode 100644
diff --git a/src/VBox/ExtPacks/VBoxDTrace/onnv/cmd/dtrace/test/tst/common/scripting/tst.pgid.d b/src/VBox/ExtPacks/VBoxDTrace/onnv/cmd/dtrace/test/tst/common/scripting/tst.pgid.d
old mode 100755
new mode 100644
diff --git a/src/VBox/ExtPacks/VBoxDTrace/onnv/cmd/dtrace/test/tst/common/scripting/tst.pid.d b/src/VBox/ExtPacks/VBoxDTrace/onnv/cmd/dtrace/test/tst/common/scripting/tst.pid.d
old mode 100755
new mode 100644
diff --git a/src/VBox/ExtPacks/VBoxDTrace/onnv/cmd/dtrace/test/tst/common/scripting/tst.ppid.d b/src/VBox/ExtPacks/VBoxDTrace/onnv/cmd/dtrace/test/tst/common/scripting/tst.ppid.d
old mode 100755
new mode 100644
diff --git a/src/VBox/ExtPacks/VBoxDTrace/onnv/cmd/dtrace/test/tst/common/scripting/tst.projid.d b/src/VBox/ExtPacks/VBoxDTrace/onnv/cmd/dtrace/test/tst/common/scripting/tst.projid.d
old mode 100755
new mode 100644
diff --git a/src/VBox/ExtPacks/VBoxDTrace/onnv/cmd/dtrace/test/tst/common/scripting/tst.quite.d b/src/VBox/ExtPacks/VBoxDTrace/onnv/cmd/dtrace/test/tst/common/scripting/tst.quite.d
old mode 100755
new mode 100644
diff --git a/src/VBox/ExtPacks/VBoxDTrace/onnv/cmd/dtrace/test/tst/common/scripting/tst.sid.d b/src/VBox/ExtPacks/VBoxDTrace/onnv/cmd/dtrace/test/tst/common/scripting/tst.sid.d
old mode 100755
new mode 100644
diff --git a/src/VBox/ExtPacks/VBoxDTrace/onnv/cmd/dtrace/test/tst/common/scripting/tst.taskid.d b/src/VBox/ExtPacks/VBoxDTrace/onnv/cmd/dtrace/test/tst/common/scripting/tst.taskid.d
old mode 100755
new mode 100644
diff --git a/src/VBox/ExtPacks/VBoxDTrace/onnv/cmd/dtrace/test/tst/common/scripting/tst.trace.d b/src/VBox/ExtPacks/VBoxDTrace/onnv/cmd/dtrace/test/tst/common/scripting/tst.trace.d
old mode 100755
new mode 100644
diff --git a/src/VBox/ExtPacks/VBoxDTrace/onnv/cmd/dtrace/test/tst/common/scripting/tst.uid.d b/src/VBox/ExtPacks/VBoxDTrace/onnv/cmd/dtrace/test/tst/common/scripting/tst.uid.d
old mode 100755
new mode 100644
diff --git a/src/VBox/ExtPacks/VBoxDTrace/onnv/cmd/dtrace/test/tst/common/speculation/err.D_ACT_SPEC.SpeculateWithBreakPoint.d b/src/VBox/ExtPacks/VBoxDTrace/onnv/cmd/dtrace/test/tst/common/speculation/err.D_ACT_SPEC.SpeculateWithBreakPoint.d
old mode 100755
new mode 100644
diff --git a/src/VBox/ExtPacks/VBoxDTrace/onnv/cmd/dtrace/test/tst/common/speculation/err.D_ACT_SPEC.SpeculateWithChill.d b/src/VBox/ExtPacks/VBoxDTrace/onnv/cmd/dtrace/test/tst/common/speculation/err.D_ACT_SPEC.SpeculateWithChill.d
old mode 100755
new mode 100644
diff --git a/src/VBox/ExtPacks/VBoxDTrace/onnv/cmd/dtrace/test/tst/common/speculation/err.D_ACT_SPEC.SpeculateWithCopyOut.d b/src/VBox/ExtPacks/VBoxDTrace/onnv/cmd/dtrace/test/tst/common/speculation/err.D_ACT_SPEC.SpeculateWithCopyOut.d
old mode 100755
new mode 100644
diff --git a/src/VBox/ExtPacks/VBoxDTrace/onnv/cmd/dtrace/test/tst/common/speculation/err.D_ACT_SPEC.SpeculateWithCopyOutStr.d b/src/VBox/ExtPacks/VBoxDTrace/onnv/cmd/dtrace/test/tst/common/speculation/err.D_ACT_SPEC.SpeculateWithCopyOutStr.d
old mode 100755
new mode 100644
diff --git a/src/VBox/ExtPacks/VBoxDTrace/onnv/cmd/dtrace/test/tst/common/speculation/err.D_ACT_SPEC.SpeculateWithPanic.d b/src/VBox/ExtPacks/VBoxDTrace/onnv/cmd/dtrace/test/tst/common/speculation/err.D_ACT_SPEC.SpeculateWithPanic.d
old mode 100755
new mode 100644
diff --git a/src/VBox/ExtPacks/VBoxDTrace/onnv/cmd/dtrace/test/tst/common/speculation/err.D_ACT_SPEC.SpeculateWithRaise.d b/src/VBox/ExtPacks/VBoxDTrace/onnv/cmd/dtrace/test/tst/common/speculation/err.D_ACT_SPEC.SpeculateWithRaise.d
old mode 100755
new mode 100644
diff --git a/src/VBox/ExtPacks/VBoxDTrace/onnv/cmd/dtrace/test/tst/common/speculation/err.D_ACT_SPEC.SpeculateWithStop.d b/src/VBox/ExtPacks/VBoxDTrace/onnv/cmd/dtrace/test/tst/common/speculation/err.D_ACT_SPEC.SpeculateWithStop.d
old mode 100755
new mode 100644
diff --git a/src/VBox/ExtPacks/VBoxDTrace/onnv/cmd/dtrace/test/tst/common/usdt/tst.corruptenv.ksh b/src/VBox/ExtPacks/VBoxDTrace/onnv/cmd/dtrace/test/tst/common/usdt/tst.corruptenv.ksh
old mode 100755
new mode 100644
diff --git a/src/VBox/ExtPacks/VBoxDTrace/onnv/lib/libdtrace/common/mkerrtags.sh b/src/VBox/ExtPacks/VBoxDTrace/onnv/lib/libdtrace/common/mkerrtags.sh
old mode 100755
new mode 100644
diff --git a/src/VBox/Frontends/VirtualBox/nls/VirtualBox_id.ts b/src/VBox/Frontends/VirtualBox/nls/VirtualBox_id.ts
index 6e3a97b..bd38b0f 100644
--- a/src/VBox/Frontends/VirtualBox/nls/VirtualBox_id.ts
+++ b/src/VBox/Frontends/VirtualBox/nls/VirtualBox_id.ts
@@ -2341,7 +2341,7 @@
     </message>
     <message>
         <source>Verifying %1...</source>
-        <translation type="unfinished"></translation>
+        <translation>Verifikasi %1...</translation>
     </message>
 </context>
 <context>
@@ -3848,8 +3848,8 @@
         <translation>Alamat IPv6</translation>
     </message>
     <message>
-        <source>IPv6 Prefix Length</source>
-        <translation>Panjang Mask Jaringan IPv6</translation>
+        <source>IPv6 Network Mask Length</source>
+        <translation type="vanished">Panjang Mask Jaringan IPv6</translation>
     </message>
     <message>
         <source>Not set</source>
@@ -4093,8 +4093,16 @@
         <translation>Menyunting jaringan hanya-host yang dipilih.</translation>
     </message>
     <message>
+        <source>Host interface <b>%1</b> does not currently have a valid IPv6 network mask prefix length.</source>
+        <translation type="vanished">Antar muka host <b>%1</b> saat ini tidak memiliki panjang prefiks mask jaringan IPv6 yang valid.</translation>
+    </message>
+    <message>
         <source>Host interface <b>%1</b> does not currently have a valid IPv6 prefix length.</source>
-        <translation>Antar muka host <b>%1</b> saat ini tidak memiliki panjang prefiks mask jaringan IPv6 yang valid.</translation>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>IPv6 Prefix Length</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
@@ -4140,11 +4148,11 @@
         <translation type="obsolete">Tampilkan alamat IPv6 host bagi adaptor ini bila IPv6 didukung.</translation>
     </message>
     <message>
-        <source>IPv6 Prefix &Length:</source>
+        <source>IPv6 Network Mask &Length:</source>
         <translation type="obsolete">&Panjang Mask Jaringan IPv6:</translation>
     </message>
     <message>
-        <source>Holds the host IPv6 prefix length for this adapter if IPv6 is supported.</source>
+        <source>Holds the host IPv6 network mask prefix length for this adapter if IPv6 is supported.</source>
         <translation type="obsolete">Tampilkan panjang prefiks mask jaringan IPv6 host bagi adaptor ini bila IPv6 didukung.</translation>
     </message>
     <message>
@@ -4235,12 +4243,12 @@
         <translation>Menyimpan alamat IPv6 host bagi adaptor ini bila IPv6 didukung.</translation>
     </message>
     <message>
-        <source>IPv6 Prefix &Length:</source>
-        <translation>&Panjang Mask Jaringan IPv6:</translation>
+        <source>IPv6 Network Mask &Length:</source>
+        <translation type="vanished">&Panjang Mask Jaringan IPv6:</translation>
     </message>
     <message>
-        <source>Holds the host IPv6 prefix length for this adapter if IPv6 is supported.</source>
-        <translation>Menyimpan panjang prefiks mask jaringan IPv6 host bagi adaptor ini bila IPv6 didukung.</translation>
+        <source>Holds the host IPv6 network mask prefix length for this adapter if IPv6 is supported.</source>
+        <translation type="vanished">Menyimpan panjang prefiks mask jaringan IPv6 host bagi adaptor ini bila IPv6 didukung.</translation>
     </message>
     <message>
         <source>&DHCP Server</source>
@@ -4294,6 +4302,14 @@
         <source>When checked, the DHCP Server will be enabled for this network on machine start-up.</source>
         <translation>Saat dicontreng, Server DHCP akan difungsikan bagi jaringan ini saat startup mesin.</translation>
     </message>
+    <message>
+        <source>IPv6 Prefix &Length:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <source>Holds the host IPv6 prefix length for this adapter if IPv6 is supported.</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>UIGlobalSettingsNetworkDetailsNAT</name>
@@ -9926,11 +9942,11 @@
     </message>
     <message>
         <source><p>The <b>VirtualBox Guest Additions</b> disk image file has been successfully downloaded from <nobr><a href="%1">%1</a></nobr> and saved locally as <nobr><b>%2</b>, </nobr>but the SHA-256 checksum verification failed.</p><p>Please do the download, installation and verification manually.</p></source>
-        <translation type="unfinished"></translation>
+        <translation><p>Berkas image disk <b>VirtualBox Guest Additions</b> telah sukses diunduh dari <nobr><a href="%1">%1</a></nobr> dan disimpan secara lokal sebagai <nobr><b>%2</b>, </nobr>tapi verifikasi checksum SHA-256 gagal.</p><p>Harap lakukan pengunduhan, pemasangan, dan verifikasi secara manual.</p></translation>
     </message>
     <message>
         <source><p>The <b><nobr>%1</nobr></b> has been successfully downloaded from <nobr><a href="%2">%2</a></nobr> and saved locally as <nobr><b>%3</b>, </nobr>but the SHA-256 checksum verification failed.</p><p>Please do the download, installation and verification manually.</p></source>
-        <translation type="unfinished"></translation>
+        <translation><p><b><nobr>%1</nobr></b> telah sukses diunduh dari <nobr><a href="%2">%2</a></nobr> dan disimpan secara lokal sebagai <nobr><b>%3</b>, </nobr>tapi verifikasi checksum SHA-256 gagal.</p><p>Harap lakukan pengunduhan, pemasangan, dan verifikasi secara manual.</p></translation>
     </message>
 </context>
 <context>
diff --git a/src/VBox/Frontends/VirtualBox/src/widgets/UIFilmContainer.cpp b/src/VBox/Frontends/VirtualBox/src/widgets/UIFilmContainer.cpp
old mode 100644
new mode 100755
diff --git a/src/VBox/GuestHost/OpenGL/error/error.py b/src/VBox/GuestHost/OpenGL/error/error.py
old mode 100644
new mode 100755
diff --git a/src/VBox/GuestHost/OpenGL/packer/opcodes.py b/src/VBox/GuestHost/OpenGL/packer/opcodes.py
old mode 100644
new mode 100755
diff --git a/src/VBox/GuestHost/OpenGL/packer/pack_current.py b/src/VBox/GuestHost/OpenGL/packer/pack_current.py
old mode 100644
new mode 100755
diff --git a/src/VBox/GuestHost/OpenGL/packer/pack_currentheader.py b/src/VBox/GuestHost/OpenGL/packer/pack_currentheader.py
old mode 100644
new mode 100755
diff --git a/src/VBox/GuestHost/OpenGL/packer/pack_header.py b/src/VBox/GuestHost/OpenGL/packer/pack_header.py
old mode 100644
new mode 100755
diff --git a/src/VBox/GuestHost/OpenGL/packer/pack_swap.py b/src/VBox/GuestHost/OpenGL/packer/pack_swap.py
old mode 100644
new mode 100755
diff --git a/src/VBox/GuestHost/OpenGL/packer/packer.py b/src/VBox/GuestHost/OpenGL/packer/packer.py
old mode 100644
new mode 100755
diff --git a/src/VBox/GuestHost/OpenGL/packer/packer_bbox.py b/src/VBox/GuestHost/OpenGL/packer/packer_bbox.py
old mode 100644
new mode 100755
diff --git a/src/VBox/GuestHost/OpenGL/spu_loader/dispatch.py b/src/VBox/GuestHost/OpenGL/spu_loader/dispatch.py
old mode 100644
new mode 100755
diff --git a/src/VBox/GuestHost/OpenGL/spu_loader/dispatchheader.py b/src/VBox/GuestHost/OpenGL/spu_loader/dispatchheader.py
old mode 100644
new mode 100755
diff --git a/src/VBox/GuestHost/OpenGL/spu_loader/glloader.py b/src/VBox/GuestHost/OpenGL/spu_loader/glloader.py
old mode 100644
new mode 100755
diff --git a/src/VBox/GuestHost/OpenGL/spu_loader/spuchange.py b/src/VBox/GuestHost/OpenGL/spu_loader/spuchange.py
old mode 100644
new mode 100755
diff --git a/src/VBox/GuestHost/OpenGL/spu_loader/spucopy.py b/src/VBox/GuestHost/OpenGL/spu_loader/spucopy.py
old mode 100644
new mode 100755
diff --git a/src/VBox/GuestHost/OpenGL/state_tracker/convert.py b/src/VBox/GuestHost/OpenGL/state_tracker/convert.py
old mode 100644
new mode 100755
diff --git a/src/VBox/GuestHost/OpenGL/state_tracker/dump_gen.py b/src/VBox/GuestHost/OpenGL/state_tracker/dump_gen.py
old mode 100644
new mode 100755
diff --git a/src/VBox/GuestHost/OpenGL/state_tracker/gendiffcode.py b/src/VBox/GuestHost/OpenGL/state_tracker/gendiffcode.py
old mode 100644
new mode 100755
diff --git a/src/VBox/GuestHost/OpenGL/state_tracker/get_components.py b/src/VBox/GuestHost/OpenGL/state_tracker/get_components.py
old mode 100644
new mode 100755
diff --git a/src/VBox/GuestHost/OpenGL/state_tracker/state_current.py b/src/VBox/GuestHost/OpenGL/state_tracker/state_current.py
old mode 100644
new mode 100755
diff --git a/src/VBox/GuestHost/OpenGL/state_tracker/state_funcs.py b/src/VBox/GuestHost/OpenGL/state_tracker/state_funcs.py
old mode 100644
new mode 100755
diff --git a/src/VBox/GuestHost/OpenGL/state_tracker/state_get.py b/src/VBox/GuestHost/OpenGL/state_tracker/state_get.py
old mode 100644
new mode 100755
diff --git a/src/VBox/GuestHost/OpenGL/state_tracker/state_isenabled.py b/src/VBox/GuestHost/OpenGL/state_tracker/state_isenabled.py
old mode 100644
new mode 100755
diff --git a/src/VBox/GuestHost/OpenGL/util/debug_opcodes.py b/src/VBox/GuestHost/OpenGL/util/debug_opcodes.py
old mode 100644
new mode 100755
diff --git a/src/VBox/HostDrivers/Support/SUPLibLdr.cpp b/src/VBox/HostDrivers/Support/SUPLibLdr.cpp
index 7fd4875..d7fe770 100644
--- a/src/VBox/HostDrivers/Support/SUPLibLdr.cpp
+++ b/src/VBox/HostDrivers/Support/SUPLibLdr.cpp
@@ -277,7 +277,7 @@ static DECLCALLBACK(int) supLoadModuleResolveImport(RTLDRMOD hLdrMod, const char
         return VINF_SUCCESS;
     }
     return RTErrInfoSetF(pArgs->pErrInfo, VERR_SYMBOL_NOT_FOUND,
-                         "Unable to local imported symbol '%s%s%s' for module '%s'",
+                         "Unable to locate imported symbol '%s%s%s' for module '%s'",
                          pszModule ? pszModule : "",
                          pszModule && *pszModule ? "." : "",
                          pszSymbol,
diff --git a/src/VBox/HostDrivers/VBoxNetAdp/win/VBoxNetAdp-win.cpp b/src/VBox/HostDrivers/VBoxNetAdp/win/VBoxNetAdp-win.cpp
index e16b50d..8f03aec 100644
--- a/src/VBox/HostDrivers/VBoxNetAdp/win/VBoxNetAdp-win.cpp
+++ b/src/VBox/HostDrivers/VBoxNetAdp/win/VBoxNetAdp-win.cpp
@@ -19,14 +19,25 @@
 #include <VBox/log.h>
 #include <VBox/version.h>
 #include <VBox/err.h>
-#include <iprt/initterm.h>
+#include <VBox/sup.h>
+#include <VBox/intnet.h>
+#include <VBox/intnetinline.h>
 #include <iprt/assert.h>
+#include <iprt/initterm.h>
+#include <iprt/list.h>
+#include <iprt/net.h>
+#include <iprt/semaphore.h>
+#include <iprt/string.h>
+#include <iprt/uuid.h>
 
+#include <iprt/nt/ntddk.h>
 #include <iprt/nt/ndis.h>
 
 #include "VBoxNetAdp-win.h"
 #include "VBox/VBoxNetCmn-win.h"
 
+#define VBOXNETADP_MEM_TAG                   'OHBV'
+
 /*
  * By default the link speed reported to be 1Gbps. We may wish to lower
  * it to 100Mbps to work around issues with multi-cast traffic on the host.
@@ -34,6 +45,8 @@
  */
 #define VBOXNETADPWIN_LINK_SPEED 1000000000ULL
 
+#define LogError LogRel
+
 /* Forward declarations */
 MINIPORT_INITIALIZE                vboxNetAdpWinInitializeEx;
 MINIPORT_HALT                      vboxNetAdpWinHaltEx;
@@ -51,16 +64,67 @@ MINIPORT_SHUTDOWN                  vboxNetAdpWinShutdownEx;
 MINIPORT_CANCEL_OID_REQUEST        vboxNetAdpWinCancelOidRequest;
 
 
+/* Packet types by destination address; used in statistics. */
+typedef enum {
+    kVBoxNetAdpWinPacketType_Unicast,
+    kVBoxNetAdpWinPacketType_Multicast,
+    kVBoxNetAdpWinPacketType_Broadcast,
+    kVBoxNetAdpWinPacketType_ArraySize /* Must be the last one */
+} VBOXNETADPWIN_PACKET_TYPE;
+
+
+/* Miniport states as defined by NDIS. */
+typedef enum {
+    kVBoxNetAdpWinState_Initializing,
+    kVBoxNetAdpWinState_Paused,
+    kVBoxNetAdpWinState_Restarting,
+    kVBoxNetAdpWinState_Running,
+    kVBoxNetAdpWinState_Pausing,
+    kVBoxNetAdpWinState_32BitHack = 0x7fffffff
+} VBOXNETADPWIN_ADAPTER_STATE;
+
+
+/*
+ * Valid state transitions are:
+ * 1) Disconnected -> Connecting   : start the worker thread, attempting to init IDC;
+ * 2) Connecting   -> Disconnected : failed to start IDC init worker thread;
+ * 3) Connecting   -> Connected    : IDC init successful, terminate the worker;
+ * 4) Connecting   -> Stopping     : IDC init incomplete, but the driver is being unloaded, terminate the worker;
+ * 5) Connected    -> Stopping     : IDC init was successful, no worker, the driver is being unloaded;
+ *
+ * Driver terminates in either in Disconnected or in Stopping state.
+ */
+typedef enum {
+    kVBoxNetAdpWinIdcState_Disconnected = 0, /* Initial state */
+    kVBoxNetAdpWinIdcState_Connecting,       /* Attemping to init IDC, worker thread running */
+    kVBoxNetAdpWinIdcState_Connected,        /* Successfully connected to IDC, worker thread terminated */
+    kVBoxNetAdpWinIdcState_Stopping          /* Terminating the worker thread and disconnecting IDC */
+} VBOXNETADPWIN_IDC_STATE;
+
 typedef struct _VBOXNETADPGLOBALS
 {
-    /** ndis device */
-    NDIS_HANDLE hDevice;
-    /** device object */
-    PDEVICE_OBJECT pDevObj;
-    /** our miniport driver handle */
+    /** Miniport driver handle. */
     NDIS_HANDLE hMiniportDriver;
-    /** power management capabilities, shared by all instances, do not change after init */
+    /** Power management capabilities, shared by all instances, do not change after init. */
     NDIS_PNP_CAPABILITIES PMCaps;
+    /** The INTNET trunk network interface factory. */
+    INTNETTRUNKFACTORY TrunkFactory;
+    /** The SUPDRV component factory registration. */
+    SUPDRVFACTORY SupDrvFactory;
+    /** The SUPDRV IDC handle (opaque struct). */
+    SUPDRVIDCHANDLE SupDrvIDC;
+    /** IDC init thread handle. */
+    HANDLE hInitIdcThread;
+    /** Lock protecting the following members. */
+    NDIS_SPIN_LOCK Lock;
+    /** Lock-protected: the head of module list. */
+    RTLISTANCHOR ListOfAdapters;
+    /** Lock-protected: The number of current factory references. */
+    int32_t volatile cFactoryRefs;
+    /** Lock-protected: IDC initialization state. */
+    volatile uint32_t enmIdcState;
+    /** Lock-protected: event signaled when trunk factory is not in use. */
+    NDIS_EVENT EventUnloadAllowed;
 } VBOXNETADPGLOBALS, *PVBOXNETADPGLOBALS;
 
 /* win-specific global data */
@@ -68,83 +132,866 @@ VBOXNETADPGLOBALS g_VBoxNetAdpGlobals;
 
 
 typedef struct _VBOXNETADP_ADAPTER {
+    /** Auxiliary member to link adapters into a list. */
+    RTLISTNODE node;
+    /** Adapter handle for NDIS. */
     NDIS_HANDLE hAdapter;
+    /** Memory pool network buffers are allocated from. */
+    NDIS_HANDLE hPool;
+    /** Our RJ-45 port.
+     * This is what the internal network plugs into. */
+    INTNETTRUNKIFPORT MyPort;
+    /** The RJ-45 port on the INTNET "switch".
+     * This is what we're connected to. */
+    PINTNETTRUNKSWPORT pSwitchPort;
+    /** Pointer to global data */
     PVBOXNETADPGLOBALS pGlobals;
+    /** Adapter state in NDIS, used for assertions only */
+    VBOXNETADPWIN_ADAPTER_STATE volatile enmAdapterState; // @todo do we need it really?
+    /** The trunk state. */
+    INTNETTRUNKIFSTATE volatile enmTrunkState;
+    /** Number of pending operations, when it reaches zero we signal EventIdle. */
+    int32_t volatile cBusy;
+    /** The event that is signaled when we go idle and that pfnWaitForIdle blocks on. */
+    NDIS_EVENT EventIdle;
+    /** MAC address of adapter. */
     RTMAC MacAddr;
+    /** Statistics: bytes received from internal network. */
+    uint64_t au64StatsInOctets[kVBoxNetAdpWinPacketType_ArraySize];
+    /** Statistics: packets received from internal network. */
+    uint64_t au64StatsInPackets[kVBoxNetAdpWinPacketType_ArraySize];
+    /** Statistics: bytes sent to internal network. */
+    uint64_t au64StatsOutOctets[kVBoxNetAdpWinPacketType_ArraySize];
+    /** Statistics: packets sent to internal network. */
+    uint64_t au64StatsOutPackets[kVBoxNetAdpWinPacketType_ArraySize];
+    /** Adapter friendly name. */
+    char szName[1];
 } VBOXNETADP_ADAPTER;
 typedef VBOXNETADP_ADAPTER *PVBOXNETADP_ADAPTER;
 
 
-static NTSTATUS vboxNetAdpWinDevDispatch(IN PDEVICE_OBJECT pDevObj, IN PIRP pIrp)
+/* Port */
+
+#define IFPORT_2_VBOXNETADP_ADAPTER(pIfPort) \
+    ( (PVBOXNETADP_ADAPTER)((uint8_t *)pIfPort - RT_OFFSETOF(VBOXNETADP_ADAPTER, MyPort)) )
+
+DECLINLINE(VBOXNETADPWIN_ADAPTER_STATE) vboxNetAdpWinGetState(PVBOXNETADP_ADAPTER pThis)
+{
+    return (VBOXNETADPWIN_ADAPTER_STATE)ASMAtomicUoReadU32((uint32_t volatile *)&pThis->enmAdapterState);
+}
+
+DECLINLINE(VBOXNETADPWIN_ADAPTER_STATE) vboxNetAdpWinSetState(PVBOXNETADP_ADAPTER pThis, VBOXNETADPWIN_ADAPTER_STATE enmNewState)
+{
+    return (VBOXNETADPWIN_ADAPTER_STATE)ASMAtomicXchgU32((uint32_t volatile *)&pThis->enmAdapterState, enmNewState);
+}
+
+DECLINLINE(bool) vboxNetAdpWinSetState(PVBOXNETADP_ADAPTER pThis, VBOXNETADPWIN_ADAPTER_STATE enmNewState,
+                                                              VBOXNETADPWIN_ADAPTER_STATE enmOldState)
 {
-    RT_NOREF1(pDevObj);
-    PIO_STACK_LOCATION pIrpSl = IoGetCurrentIrpStackLocation(pIrp);
-    NTSTATUS Status = STATUS_SUCCESS;
+    return ASMAtomicCmpXchgU32((uint32_t volatile *)&pThis->enmAdapterState, enmNewState, enmOldState);
+}
 
-    switch (pIrpSl->MajorFunction)
+#ifdef DEBUG
+
+DECLHIDDEN(void) vboxNetAdpWinDumpPackets(const char *pszMsg, PNET_BUFFER_LIST pBufLists)
+{
+    for (PNET_BUFFER_LIST pList = pBufLists; pList; pList = NET_BUFFER_LIST_NEXT_NBL(pList))
+    {
+        for (PNET_BUFFER pBuf = NET_BUFFER_LIST_FIRST_NB(pList); pBuf; pBuf = NET_BUFFER_NEXT_NB(pBuf))
+        {
+            Log6(("%s packet: cb=%d offset=%d", pszMsg, NET_BUFFER_DATA_LENGTH(pBuf), NET_BUFFER_DATA_OFFSET(pBuf)));
+            for (PMDL pMdl = NET_BUFFER_FIRST_MDL(pBuf);
+                 pMdl != NULL;
+                 pMdl = NDIS_MDL_LINKAGE(pMdl))
+            {
+                Log6((" MDL: cb=%d", MmGetMdlByteCount(pMdl)));
+            }
+            Log6(("\n"));
+        }
+    }
+}
+
+DECLINLINE(const char *) vboxNetAdpWinEthTypeStr(uint16_t uType)
+{
+    switch (uType)
     {
-        case IRP_MJ_DEVICE_CONTROL:
-            Status = STATUS_NOT_SUPPORTED; /// @todo add/remove ioctls
+        case RTNET_ETHERTYPE_IPV4: return "IP";
+        case RTNET_ETHERTYPE_IPV6: return "IPv6";
+        case RTNET_ETHERTYPE_ARP:  return "ARP";
+    }
+    return "unknown";
+}
+
+#define VBOXNETADP_PKTDMPSIZE 0x50
+
+/**
+ * Dump a packet to debug log.
+ *
+ * @param   cpPacket    The packet.
+ * @param   cb          The size of the packet.
+ * @param   cszText     A string denoting direction of packet transfer.
+ */
+DECLINLINE(void) vboxNetAdpWinDumpPacket(PCINTNETSG pSG, const char *cszText)
+{
+    uint8_t bPacket[VBOXNETADP_PKTDMPSIZE];
+
+    uint32_t cb = pSG->cbTotal < VBOXNETADP_PKTDMPSIZE ? pSG->cbTotal : VBOXNETADP_PKTDMPSIZE;
+    IntNetSgReadEx(pSG, 0, cb, bPacket);
+
+    AssertReturnVoid(cb >= 14);
+
+    uint8_t *pHdr = bPacket;
+    uint8_t *pEnd = bPacket + cb;
+    AssertReturnVoid(pEnd - pHdr >= 14);
+    uint16_t uEthType = RT_N2H_U16(*(uint16_t*)(pHdr+12));
+    Log2(("NetADP: %s (%d bytes), %RTmac => %RTmac, EthType=%s(0x%x)\n",
+          cszText, pSG->cbTotal, pHdr+6, pHdr, vboxNetAdpWinEthTypeStr(uEthType), uEthType));
+    pHdr += sizeof(RTNETETHERHDR);
+    if (uEthType == RTNET_ETHERTYPE_VLAN)
+    {
+        AssertReturnVoid(pEnd - pHdr >= 4);
+        uEthType = RT_N2H_U16(*(uint16_t*)(pHdr+2));
+        Log2((" + VLAN: id=%d EthType=%s(0x%x)\n", RT_N2H_U16(*(uint16_t*)(pHdr)) & 0xFFF,
+              vboxNetAdpWinEthTypeStr(uEthType), uEthType));
+        pHdr += 2 * sizeof(uint16_t);
+    }
+    uint8_t uProto = 0xFF;
+    switch (uEthType)
+    {
+        case RTNET_ETHERTYPE_IPV6:
+            AssertReturnVoid(pEnd - pHdr >= 40);
+            uProto = pHdr[6];
+            Log2((" + IPv6: %RTnaipv6 => %RTnaipv6\n", pHdr+8, pHdr+24));
+            pHdr += 40;
             break;
-        case IRP_MJ_CREATE:
-        case IRP_MJ_CLEANUP:
-        case IRP_MJ_CLOSE:
+        case RTNET_ETHERTYPE_IPV4:
+            AssertReturnVoid(pEnd - pHdr >= 20);
+            uProto = pHdr[9];
+            Log2((" + IP: %RTnaipv4 => %RTnaipv4\n", *(uint32_t*)(pHdr+12), *(uint32_t*)(pHdr+16)));
+            pHdr += (pHdr[0] & 0xF) * 4;
             break;
-        default:
-            AssertFailed();
+        case RTNET_ETHERTYPE_ARP:
+            AssertReturnVoid(pEnd - pHdr >= 28);
+            AssertReturnVoid(RT_N2H_U16(*(uint16_t*)(pHdr+2)) == RTNET_ETHERTYPE_IPV4);
+            switch (RT_N2H_U16(*(uint16_t*)(pHdr+6)))
+            {
+                case 1: /* ARP request */
+                    Log2((" + ARP-REQ: who-has %RTnaipv4 tell %RTnaipv4\n",
+                          *(uint32_t*)(pHdr+24), *(uint32_t*)(pHdr+14)));
+                    break;
+                case 2: /* ARP reply */
+                    Log2((" + ARP-RPL: %RTnaipv4 is-at %RTmac\n",
+                          *(uint32_t*)(pHdr+14), pHdr+8));
+                    break;
+                default:
+                    Log2((" + ARP: unknown op %d\n", RT_N2H_U16(*(uint16_t*)(pHdr+6))));
+                    break;
+            }
             break;
+        /* There is no default case as uProto is initialized with 0xFF */
+    }
+    while (uProto != 0xFF)
+    {
+        switch (uProto)
+        {
+            case 0:  /* IPv6 Hop-by-Hop option*/
+            case 60: /* IPv6 Destination option*/
+            case 43: /* IPv6 Routing option */
+            case 44: /* IPv6 Fragment option */
+                Log2((" + IPv6 option (%d): <not implemented>\n", uProto));
+                uProto = pHdr[0];
+                pHdr += pHdr[1] * 8 + 8; /* Skip to the next extension/protocol */
+                break;
+            case 51: /* IPv6 IPsec AH */
+                Log2((" + IPv6 IPsec AH: <not implemented>\n"));
+                uProto = pHdr[0];
+                pHdr += (pHdr[1] + 2) * 4; /* Skip to the next extension/protocol */
+                break;
+            case 50: /* IPv6 IPsec ESP */
+                /* Cannot decode IPsec, fall through */
+                Log2((" + IPv6 IPsec ESP: <not implemented>\n"));
+                uProto = 0xFF;
+                break;
+            case 59: /* No Next Header */
+                Log2((" + IPv6 No Next Header\n"));
+                uProto = 0xFF;
+                break;
+            case 58: /* IPv6-ICMP */
+                switch (pHdr[0])
+                {
+                    case 1:   Log2((" + IPv6-ICMP: destination unreachable, code %d\n", pHdr[1])); break;
+                    case 128: Log2((" + IPv6-ICMP: echo request\n")); break;
+                    case 129: Log2((" + IPv6-ICMP: echo reply\n")); break;
+                    default:  Log2((" + IPv6-ICMP: unknown type %d, code %d\n", pHdr[0], pHdr[1])); break;
+                }
+                uProto = 0xFF;
+                break;
+            case 1: /* ICMP */
+                switch (pHdr[0])
+                {
+                    case 0:  Log2((" + ICMP: echo reply\n")); break;
+                    case 8:  Log2((" + ICMP: echo request\n")); break;
+                    case 3:  Log2((" + ICMP: destination unreachable, code %d\n", pHdr[1])); break;
+                    default: Log2((" + ICMP: unknown type %d, code %d\n", pHdr[0], pHdr[1])); break;
+                }
+                uProto = 0xFF;
+                break;
+            case 6: /* TCP */
+                Log2((" + TCP: src=%d dst=%d seq=%x ack=%x\n",
+                      RT_N2H_U16(*(uint16_t*)(pHdr)), RT_N2H_U16(*(uint16_t*)(pHdr+2)),
+                      RT_N2H_U32(*(uint32_t*)(pHdr+4)), RT_N2H_U32(*(uint32_t*)(pHdr+8))));
+                uProto = 0xFF;
+                break;
+            case 17: /* UDP */
+                Log2((" + UDP: src=%d dst=%d\n",
+                      RT_N2H_U16(*(uint16_t*)(pHdr)), RT_N2H_U16(*(uint16_t*)(pHdr+2))));
+                uProto = 0xFF;
+                break;
+            default:
+                Log2((" + Unknown: proto=0x%x\n", uProto));
+                uProto = 0xFF;
+                break;
+        }
     }
+    Log3(("%.*Rhxd\n", cb, bPacket));
+}
 
-    pIrp->IoStatus.Status = Status;
-    IoCompleteRequest(pIrp, IO_NO_INCREMENT);
+#else /* !DEBUG */
+//# define vboxNetAdpWinDumpFilterTypes(uFlags)    do { } while (0)
+//# define vboxNetAdpWinDumpOffloadSettings(p)     do { } while (0)
+//# define vboxNetAdpWinDumpSetOffloadSettings(p)  do { } while (0)
+# define vboxNetAdpWinDumpPackets(m,l)           do { } while (0)
+# define vboxNetAdpWinDumpPacket(p,t)            do { } while (0)
+#endif /* !DEBUG */
 
-    return Status;
+
+DECLHIDDEN(VBOXNETADPWIN_PACKET_TYPE) vboxNetAdpWinPacketType(PINTNETSG pSG)
+{
+    static const uint8_t g_abBcastAddr[] = { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF };
+    AssertReturn(pSG->cbTotal >= sizeof(g_abBcastAddr), kVBoxNetAdpWinPacketType_Unicast);
+    AssertReturn(pSG->cSegsUsed > 0, kVBoxNetAdpWinPacketType_Unicast);
+    AssertReturn(pSG->aSegs[0].cb >= sizeof(g_abBcastAddr), kVBoxNetAdpWinPacketType_Unicast);
+    if (!memcmp(pSG->aSegs[0].pv, g_abBcastAddr, sizeof(g_abBcastAddr)))
+        return kVBoxNetAdpWinPacketType_Broadcast;
+    if ((*(uint8_t*)pSG->aSegs[0].pv) & 1)
+        return kVBoxNetAdpWinPacketType_Multicast;
+    return kVBoxNetAdpWinPacketType_Unicast;
 }
 
-static NDIS_STATUS vboxNetAdpWinDevCreate(PVBOXNETADPGLOBALS pGlobals)
-{
-    NDIS_STRING DevName, LinkName;
-    PDRIVER_DISPATCH aMajorFunctions[IRP_MJ_MAXIMUM_FUNCTION+1];
-    NdisInitUnicodeString(&DevName, VBOXNETADP_NAME_DEVICE);
-    NdisInitUnicodeString(&LinkName, VBOXNETADP_NAME_LINK);
-
-    Assert(!pGlobals->hDevice);
-    Assert(!pGlobals->pDevObj);
-    NdisZeroMemory(aMajorFunctions, sizeof (aMajorFunctions));
-    aMajorFunctions[IRP_MJ_CREATE] = vboxNetAdpWinDevDispatch;
-    aMajorFunctions[IRP_MJ_CLEANUP] = vboxNetAdpWinDevDispatch;
-    aMajorFunctions[IRP_MJ_CLOSE] = vboxNetAdpWinDevDispatch;
-    aMajorFunctions[IRP_MJ_DEVICE_CONTROL] = vboxNetAdpWinDevDispatch;
-
-    NDIS_DEVICE_OBJECT_ATTRIBUTES DeviceAttributes;
-    NdisZeroMemory(&DeviceAttributes, sizeof(DeviceAttributes));
-    DeviceAttributes.Header.Type = NDIS_OBJECT_TYPE_DEVICE_OBJECT_ATTRIBUTES;
-    DeviceAttributes.Header.Revision = NDIS_DEVICE_OBJECT_ATTRIBUTES_REVISION_1;
-    DeviceAttributes.Header.Size = sizeof(DeviceAttributes);
-    DeviceAttributes.DeviceName = &DevName;
-    DeviceAttributes.SymbolicName = &LinkName;
-    DeviceAttributes.MajorFunctions = aMajorFunctions;
-
-    NDIS_STATUS Status = NdisRegisterDeviceEx(pGlobals->hMiniportDriver,
-                                              &DeviceAttributes,
-                                              &pGlobals->pDevObj,
-                                              &pGlobals->hDevice);
-    Log(("vboxNetAdpWinDevCreate: NdisRegisterDeviceEx returned 0x%x\n", Status));
-    Assert(Status == NDIS_STATUS_SUCCESS);
-    return Status;
+DECLINLINE(void) vboxNetAdpWinUpdateStats(uint64_t *pPacketStats, uint64_t *pOctetStats, PINTNETSG pSG)
+{
+    VBOXNETADPWIN_PACKET_TYPE enmPktType = vboxNetAdpWinPacketType(pSG);
+    ASMAtomicIncU64(&pPacketStats[enmPktType]);
+    ASMAtomicAddU64(&pOctetStats[enmPktType], pSG->cbTotal);
 }
 
-static void vboxNetAdpWinDevDestroy(PVBOXNETADPGLOBALS pGlobals)
+DECLINLINE(void) vboxNetAdpWinFreeMdlChain(PMDL pMdl)
 {
-    Assert(pGlobals->hDevice);
-    Assert(pGlobals->pDevObj);
-    NdisDeregisterDeviceEx(pGlobals->hDevice);
-    pGlobals->hDevice = NULL;
-    pGlobals->pDevObj = NULL;
+    PMDL pMdlNext;
+    while (pMdl)
+    {
+        pMdlNext = pMdl->Next;
+        PUCHAR pDataBuf;
+        ULONG cb = 0;
+        NdisQueryMdl(pMdl, &pDataBuf, &cb, NormalPagePriority);
+        NdisFreeMdl(pMdl);
+        Log4(("vboxNetAdpWinFreeMdlChain: freed MDL 0x%p\n", pMdl));
+        NdisFreeMemory(pDataBuf, 0, 0);
+        Log4(("vboxNetAdpWinFreeMdlChain: freed data buffer 0x%p\n", pDataBuf));
+        pMdl = pMdlNext;
+    }
 }
 
+DECLHIDDEN(PNET_BUFFER_LIST) vboxNetAdpWinSGtoNB(PVBOXNETADP_ADAPTER pThis, PINTNETSG pSG)
+{
+    AssertReturn(pSG->cSegsUsed >= 1, NULL);
+    LogFlow(("==>vboxNetAdpWinSGtoNB: segments=%d hPool=%p cb=%u\n", pSG->cSegsUsed,
+             pThis->hPool, pSG->cbTotal));
+    AssertReturn(pThis->hPool, NULL);
+
+
+    PNET_BUFFER_LIST pBufList = NULL;
+    ULONG cbMdl = pSG->cbTotal;
+    ULONG uDataOffset = cbMdl - pSG->cbTotal;
+    PUCHAR pDataBuf = (PUCHAR)NdisAllocateMemoryWithTagPriority(pThis->hAdapter, cbMdl,
+                                                                VBOXNETADP_MEM_TAG, NormalPoolPriority);
+    if (pDataBuf)
+    {
+        Log4(("vboxNetAdpWinSGtoNB: allocated data buffer (cb=%u) 0x%p\n", cbMdl, pDataBuf));
+        PMDL pMdl = NdisAllocateMdl(pThis->hAdapter, pDataBuf, cbMdl);
+        if (!pMdl)
+        {
+            NdisFreeMemory(pDataBuf, 0, 0);
+            Log4(("vboxNetAdpWinSGtoNB: freed data buffer 0x%p\n", pDataBuf));
+            LogError(("vboxNetAdpWinSGtoNB: failed to allocate an MDL (cb=%u)\n", cbMdl));
+            LogFlow(("<==vboxNetAdpWinSGtoNB: return NULL\n"));
+            return NULL;
+        }
+        PUCHAR pDst = pDataBuf + uDataOffset;
+        for (int i = 0; i < pSG->cSegsUsed; i++)
+        {
+            NdisMoveMemory(pDst, pSG->aSegs[i].pv, pSG->aSegs[i].cb);
+            pDst += pSG->aSegs[i].cb;
+        }
+        pBufList = NdisAllocateNetBufferAndNetBufferList(pThis->hPool,
+                                                         0 /* ContextSize */,
+                                                         0 /* ContextBackFill */,
+                                                         pMdl,
+                                                         uDataOffset,
+                                                         pSG->cbTotal);
+        if (pBufList)
+        {
+            Log4(("vboxNetAdpWinSGtoNB: allocated NBL+NB 0x%p\n", pBufList));
+            pBufList->SourceHandle = pThis->hAdapter;
+            /** @todo Do we need to initialize anything else? */
+        }
+        else
+        {
+            LogError(("vboxNetAdpWinSGtoNB: failed to allocate an NBL+NB\n"));
+            vboxNetAdpWinFreeMdlChain(pMdl);
+        }
+    }
+    else
+    {
+        LogError(("vboxNetAdpWinSGtoNB: failed to allocate data buffer (size=%u)\n", cbMdl));
+    }
+
+    LogFlow(("<==vboxNetAdpWinSGtoNB: return %p\n", pBufList));
+    return pBufList;
+}
+
+DECLINLINE(void) vboxNetAdpWinDestroySG(PINTNETSG pSG)
+{
+    NdisFreeMemory(pSG, 0, 0);
+    Log4(("vboxNetAdpWinDestroySG: freed SG 0x%p\n", pSG));
+}
+
+DECLINLINE(ULONG) vboxNetAdpWinCalcSegments(PNET_BUFFER pNetBuf)
+{
+    ULONG cSegs = 0;
+    for (PMDL pMdl = NET_BUFFER_CURRENT_MDL(pNetBuf); pMdl; pMdl = NDIS_MDL_LINKAGE(pMdl))
+        cSegs++;
+    return cSegs;
+}
+
+DECLHIDDEN(PINTNETSG) vboxNetAdpWinNBtoSG(PVBOXNETADP_ADAPTER pThis, PNET_BUFFER pNetBuf)
+{
+    ULONG cbPacket = NET_BUFFER_DATA_LENGTH(pNetBuf);
+    UINT cSegs = vboxNetAdpWinCalcSegments(pNetBuf);
+    /* Allocate and initialize SG */
+    PINTNETSG pSG = (PINTNETSG)NdisAllocateMemoryWithTagPriority(pThis->hAdapter,
+                                                                 RT_OFFSETOF(INTNETSG, aSegs[cSegs]),
+                                                                 VBOXNETADP_MEM_TAG,
+                                                                 NormalPoolPriority);
+    AssertReturn(pSG, pSG);
+    Log4(("vboxNetAdpWinNBtoSG: allocated SG 0x%p\n", pSG));
+    IntNetSgInitTempSegs(pSG, cbPacket /*cbTotal*/, cSegs, cSegs /*cSegsUsed*/);
+
+    int rc = NDIS_STATUS_SUCCESS;
+    ULONG uOffset = NET_BUFFER_CURRENT_MDL_OFFSET(pNetBuf);
+    cSegs = 0;
+    for (PMDL pMdl = NET_BUFFER_CURRENT_MDL(pNetBuf);
+         pMdl != NULL && cbPacket > 0;
+         pMdl = NDIS_MDL_LINKAGE(pMdl))
+    {
+        PUCHAR pSrc = (PUCHAR)MmGetSystemAddressForMdlSafe(pMdl, LowPagePriority);
+        if (!pSrc)
+        {
+            rc = NDIS_STATUS_RESOURCES;
+            break;
+        }
+        ULONG cbSrc = MmGetMdlByteCount(pMdl);
+        if (uOffset)
+        {
+            Assert(uOffset < cbSrc);
+            pSrc  += uOffset;
+            cbSrc -= uOffset;
+            uOffset = 0;
+        }
+
+        if (cbSrc > cbPacket)
+            cbSrc = cbPacket;
+
+        pSG->aSegs[cSegs].pv = pSrc;
+        pSG->aSegs[cSegs].cb = cbSrc;
+        pSG->aSegs[cSegs].Phys = NIL_RTHCPHYS;
+        cSegs++;
+        cbPacket -= cbSrc;
+    }
+
+    Assert(cSegs <= pSG->cSegsAlloc);
+
+    if (RT_FAILURE(rc))
+    {
+        vboxNetAdpWinDestroySG(pSG);
+        pSG = NULL;
+    }
+    else
+    {
+        Assert(cbPacket == 0);
+        Assert(pSG->cSegsUsed == cSegs);
+    }
+    return pSG;
+}
+
+DECLINLINE(bool) vboxNetAdpWinIsActive(PVBOXNETADP_ADAPTER pThis)
+{
+    if (vboxNetAdpWinGetState(pThis) != kVBoxNetAdpWinState_Running)
+        return false;
+    if (pThis->enmTrunkState != INTNETTRUNKIFSTATE_ACTIVE)
+        return false;
+    AssertPtrReturn(pThis->pSwitchPort, false);
+    return true;
+}
+
+DECLHIDDEN(bool) vboxNetAdpWinForwardToIntNet(PVBOXNETADP_ADAPTER pThis, PNET_BUFFER_LIST pList, uint32_t fSrc)
+{
+    if (!vboxNetAdpWinIsActive(pThis))
+    {
+        LogFlow(("vboxNetAdpWinForwardToIntNet: not active\n"));
+        return false;
+    }
+    AssertReturn(pThis->pSwitchPort, false);
+    AssertReturn(pThis->pSwitchPort->pfnRecv, false);
+    LogFlow(("==>vboxNetAdpWinForwardToIntNet\n"));
+
+    if (ASMAtomicIncS32(&pThis->cBusy) == 1)
+        NdisResetEvent(&pThis->EventIdle);
+    for (PNET_BUFFER pBuf = NET_BUFFER_LIST_FIRST_NB(pList); pBuf; pBuf = NET_BUFFER_NEXT_NB(pBuf))
+    {
+        PINTNETSG pSG = vboxNetAdpWinNBtoSG(pThis, pBuf);
+        if (pSG)
+        {
+            vboxNetAdpWinUpdateStats(pThis->au64StatsOutPackets, pThis->au64StatsOutOctets, pSG);
+            vboxNetAdpWinDumpPacket(pSG, (fSrc & INTNETTRUNKDIR_WIRE)?"intnet <-- wire":"intnet <-- host");
+            pThis->pSwitchPort->pfnRecv(pThis->pSwitchPort, NULL, pSG, fSrc);
+            vboxNetAdpWinDestroySG(pSG);
+        }
+    }
+    if (ASMAtomicDecS32(&pThis->cBusy) == 0)
+        NdisSetEvent(&pThis->EventIdle);
+
+    return true;
+}
+
+
+/**
+ * @copydoc INTNETTRUNKIFPORT::pfnRetain
+ */
+static DECLCALLBACK(void) vboxNetAdpWinPortRetain(PINTNETTRUNKIFPORT pIfPort)
+{
+    PVBOXNETADP_ADAPTER pThis = IFPORT_2_VBOXNETADP_ADAPTER(pIfPort);
+    RT_NOREF1(pThis);
+    LogFlow(("vboxNetAdpWinPortRetain: pThis=%p, pIfPort=%p\n", pThis, pIfPort));
+}
+
+/**
+ * @copydoc INTNETTRUNKIFPORT::pfnRelease
+ */
+static DECLCALLBACK(void) vboxNetAdpWinPortRelease(PINTNETTRUNKIFPORT pIfPort)
+{
+    PVBOXNETADP_ADAPTER pThis = IFPORT_2_VBOXNETADP_ADAPTER(pIfPort);
+    RT_NOREF1(pThis);
+    LogFlow(("vboxNetAdpWinPortRelease: pThis=%p, pIfPort=%p\n", pThis, pIfPort));
+}
+
+/**
+ * @copydoc INTNETTRUNKIFPORT::pfnDisconnectAndRelease
+ */
+static DECLCALLBACK(void) vboxNetAdpWinPortDisconnectAndRelease(PINTNETTRUNKIFPORT pIfPort)
+{
+    PVBOXNETADP_ADAPTER pThis = IFPORT_2_VBOXNETADP_ADAPTER(pIfPort);
+
+    LogFlow(("vboxNetAdpWinPortDisconnectAndRelease: pThis=%p, pIfPort=%p\n", pThis, pIfPort));
+    /*
+     * Serious paranoia.
+     */
+    AssertPtr(pThis);
+    Assert(pThis->MyPort.u32Version == INTNETTRUNKIFPORT_VERSION);
+    Assert(pThis->MyPort.u32VersionEnd == INTNETTRUNKIFPORT_VERSION);
+    AssertPtr(pThis->pGlobals);
+    Assert(pThis->szName[0]);
+
+    AssertPtr(pThis->pSwitchPort);
+    Assert(pThis->enmTrunkState == INTNETTRUNKIFSTATE_DISCONNECTING);
+
+    pThis->pSwitchPort = NULL;
+}
+
+/**
+ * @copydoc INTNETTRUNKIFPORT::pfnSetState
+ */
+static DECLCALLBACK(INTNETTRUNKIFSTATE) vboxNetAdpWinPortSetState(PINTNETTRUNKIFPORT pIfPort, INTNETTRUNKIFSTATE enmState)
+{
+    PVBOXNETADP_ADAPTER      pThis = IFPORT_2_VBOXNETADP_ADAPTER(pIfPort);
+    INTNETTRUNKIFSTATE  enmOldTrunkState;
+
+    LogFlow(("vboxNetAdpWinPortSetState: pThis=%p, pIfPort=%p, enmState=%d\n", pThis, pIfPort, enmState));
+    /*
+     * Input validation.
+     */
+    AssertPtr(pThis);
+    AssertPtr(pThis->pGlobals);
+    Assert(pThis->MyPort.u32Version == INTNETTRUNKIFPORT_VERSION);
+    AssertPtrReturn(pThis->pSwitchPort, INTNETTRUNKIFSTATE_INVALID);
+    AssertReturn(enmState > INTNETTRUNKIFSTATE_INVALID && enmState < INTNETTRUNKIFSTATE_END,
+                 INTNETTRUNKIFSTATE_INVALID);
+
+    enmOldTrunkState = pThis->enmTrunkState;
+    if (enmOldTrunkState != enmState)
+        ASMAtomicWriteU32((uint32_t volatile *)&pThis->enmTrunkState, enmState);
+
+    return enmOldTrunkState;
+}
+
+/**
+ * @copydoc INTNETTRUNKIFPORT::pfnWaitForIdle
+ */
+static DECLCALLBACK(int) vboxNetAdpWinPortWaitForIdle(PINTNETTRUNKIFPORT pIfPort, uint32_t cMillies)
+{
+    PVBOXNETADP_ADAPTER pThis = IFPORT_2_VBOXNETADP_ADAPTER(pIfPort);
+    int rc;
+
+    LogFlow(("vboxNetAdpWinPortWaitForIdle: pThis=%p, pIfPort=%p, cMillies=%u\n", pThis, pIfPort, cMillies));
+    /*
+     * Input validation.
+     */
+    AssertPtr(pThis);
+    Assert(pThis->MyPort.u32Version == INTNETTRUNKIFPORT_VERSION);
+    AssertPtrReturn(pThis->pSwitchPort, VERR_INVALID_STATE);
+    AssertReturn(pThis->enmTrunkState == INTNETTRUNKIFSTATE_DISCONNECTING, VERR_INVALID_STATE);
 
+    rc = NdisWaitEvent(&pThis->EventIdle, cMillies) ? VINF_SUCCESS : VERR_TIMEOUT;
 
+    return rc;
+}
+
+/**
+ * @copydoc INTNETTRUNKIFPORT::pfnXmit
+ */
+static DECLCALLBACK(int) vboxNetAdpWinPortXmit(PINTNETTRUNKIFPORT pIfPort, void *pvIfData, PINTNETSG pSG, uint32_t fDst)
+{
+    RT_NOREF1(fDst);
+    PVBOXNETADP_ADAPTER pThis = IFPORT_2_VBOXNETADP_ADAPTER(pIfPort);
+    int rc = VINF_SUCCESS;
+
+    LogFlow(("vboxNetAdpWinPortXmit: pThis=%p, pIfPort=%p, pvIfData=%p, pSG=%p, fDst=0x%x\n", pThis, pIfPort, pvIfData, pSG, fDst));
+    RT_NOREF1(pvIfData);
+    /*
+     * Input validation.
+     */
+    AssertPtr(pThis);
+    AssertPtr(pSG);
+    Assert(pThis->MyPort.u32Version == INTNETTRUNKIFPORT_VERSION);
+    AssertPtrReturn(pThis->pSwitchPort, VERR_INVALID_STATE);
+
+    vboxNetAdpWinDumpPacket(pSG, "intnet --> host");
+
+    /*
+     * First of all, indicate we are busy. It is possible the trunk or the adapter
+     * will get paused or even disconnected, so we need to check the state after
+     * we have marked ourselves busy.
+     * Later, when NDIS returns all buffers, we will mark ourselves idle.
+     */
+    if (ASMAtomicIncS32(&pThis->cBusy) == 1)
+        NdisResetEvent(&pThis->EventIdle);
+
+    if (vboxNetAdpWinIsActive(pThis))
+    {
+        PNET_BUFFER_LIST pBufList = vboxNetAdpWinSGtoNB(pThis, pSG);
+        if (pBufList)
+        {
+            NdisMIndicateReceiveNetBufferLists(pThis->hAdapter, pBufList, NDIS_DEFAULT_PORT_NUMBER, 1, 0);
+            vboxNetAdpWinUpdateStats(pThis->au64StatsInPackets, pThis->au64StatsInOctets, pSG);
+        }
+    }
+
+    return rc;
+}
+
+/**
+ * @copydoc INTNETTRUNKIFPORT::pfnNotifyMacAddress
+ */
+static DECLCALLBACK(void) vboxNetAdpWinPortNotifyMacAddress(PINTNETTRUNKIFPORT pIfPort, void *pvIfData, PCRTMAC pMac)
+{
+    PVBOXNETADP_ADAPTER pThis = IFPORT_2_VBOXNETADP_ADAPTER(pIfPort);
+
+    LogFlow(("vboxNetAdpWinPortNotifyMacAddress: pThis=%p, pIfPort=%p, pvIfData=%p, pMac=%p\n", pThis, pIfPort, pvIfData, pMac));
+    RT_NOREF3(pThis, pvIfData, pMac);
+    /*
+     * Input validation.
+     */
+    AssertPtr(pThis);
+    Assert(pThis->MyPort.u32Version == INTNETTRUNKIFPORT_VERSION);
+
+    // @todo Do we really need to handle this?
+}
+
+
+/**
+ * @copydoc INTNETTRUNKIFPORT::pfnConnectInterface
+ */
+static DECLCALLBACK(int) vboxNetAdpWinPortConnectInterface(PINTNETTRUNKIFPORT pIfPort, void *pvIf, void **ppvIfData)
+{
+    PVBOXNETADP_ADAPTER  pThis = IFPORT_2_VBOXNETADP_ADAPTER(pIfPort);
+    int             rc;
+
+    LogFlow(("vboxNetAdpWinPortConnectInterface: pThis=%p, pIfPort=%p, pvIf=%p, ppvIfData=%p\n", pThis, pIfPort, pvIf, ppvIfData));
+    RT_NOREF3(pThis, pvIf, ppvIfData);
+    /*
+     * Input validation.
+     */
+    AssertPtr(pThis);
+    Assert(pThis->MyPort.u32Version == INTNETTRUNKIFPORT_VERSION);
+
+    rc = VINF_SUCCESS;
+
+    return rc;
+}
+
+
+/**
+ * @copydoc INTNETTRUNKIFPORT::pfnDisconnectInterface
+ */
+static DECLCALLBACK(void) vboxNetAdpWinPortDisconnectInterface(PINTNETTRUNKIFPORT pIfPort, void *pvIfData)
+{
+    PVBOXNETADP_ADAPTER  pThis = IFPORT_2_VBOXNETADP_ADAPTER(pIfPort);
+    int             rc;
+
+    LogFlow(("vboxNetAdpWinPortDisconnectInterface: pThis=%p, pIfPort=%p, pvIfData=%p\n", pThis, pIfPort, pvIfData));
+    RT_NOREF2(pThis, pvIfData);
+    /*
+     * Input validation.
+     */
+    AssertPtr(pThis);
+    Assert(pThis->MyPort.u32Version == INTNETTRUNKIFPORT_VERSION);
+
+    rc = VINF_SUCCESS;
+    AssertRC(rc);
+}
+
+
+
+/**
+ * Implements the SUPDRV component factor interface query method.
+ *
+ * @returns Pointer to an interface. NULL if not supported.
+ *
+ * @param   pSupDrvFactory      Pointer to the component factory registration structure.
+ * @param   pSession            The session - unused.
+ * @param   pszInterfaceUuid    The factory interface id.
+ */
+static DECLCALLBACK(void *) vboxNetAdpWinQueryFactoryInterface(PCSUPDRVFACTORY pSupDrvFactory, PSUPDRVSESSION pSession,
+                                                            const char *pszInterfaceUuid)
+{
+    PVBOXNETADPGLOBALS pGlobals = (PVBOXNETADPGLOBALS)((uint8_t *)pSupDrvFactory - RT_OFFSETOF(VBOXNETADPGLOBALS, SupDrvFactory));
+
+    /*
+     * Convert the UUID strings and compare them.
+     */
+    RTUUID UuidReq;
+    int rc = RTUuidFromStr(&UuidReq, pszInterfaceUuid);
+    if (RT_SUCCESS(rc))
+    {
+        if (!RTUuidCompareStr(&UuidReq, INTNETTRUNKFACTORY_UUID_STR))
+        {
+            NdisAcquireSpinLock(&pGlobals->Lock);
+            if (pGlobals->enmIdcState == kVBoxNetAdpWinIdcState_Connected)
+            {
+                pGlobals->cFactoryRefs++;
+                NdisResetEvent(&pGlobals->EventUnloadAllowed);
+            }
+            NdisReleaseSpinLock(&pGlobals->Lock);
+            return &pGlobals->TrunkFactory;
+        }
+#ifdef LOG_ENABLED
+        else
+            Log(("VBoxNetFlt: unknown factory interface query (%s)\n", pszInterfaceUuid));
+#endif
+    }
+    else
+        Log(("VBoxNetFlt: rc=%Rrc, uuid=%s\n", rc, pszInterfaceUuid));
+
+    RT_NOREF1(pSession);
+    return NULL;
+}
+
+
+DECLHIDDEN(void) vboxNetAdpWinReportCapabilities(PVBOXNETADP_ADAPTER pThis)
+{
+    if (pThis->pSwitchPort)
+    {
+        pThis->pSwitchPort->pfnReportMacAddress(pThis->pSwitchPort, &pThis->MacAddr);
+        /* Promiscuous mode makes no sense for host-only adapters, does it? */
+        pThis->pSwitchPort->pfnReportGsoCapabilities(pThis->pSwitchPort, 0,
+                                                     INTNETTRUNKDIR_WIRE | INTNETTRUNKDIR_HOST);
+        pThis->pSwitchPort->pfnReportNoPreemptDsts(pThis->pSwitchPort, 0 /* none */);
+    }
+}
+
+/**
+ * @copydoc INTNETTRUNKFACTORY::pfnCreateAndConnect
+ */
+static DECLCALLBACK(int) vboxNetAdpWinFactoryCreateAndConnect(PINTNETTRUNKFACTORY pIfFactory, const char *pszName,
+                                                           PINTNETTRUNKSWPORT pSwitchPort, uint32_t fFlags,
+                                                           PINTNETTRUNKIFPORT *ppIfPort)
+{
+    PVBOXNETADPGLOBALS pGlobals = (PVBOXNETADPGLOBALS)((uint8_t *)pIfFactory - RT_OFFSETOF(VBOXNETADPGLOBALS, TrunkFactory));
+
+    LogFlow(("==>vboxNetAdpWinFactoryCreateAndConnect: pszName=%p:{%s} fFlags=%#x\n", pszName, pszName, fFlags));
+    Assert(pGlobals->cFactoryRefs > 0);
+    AssertMsgReturn(!(fFlags & ~(INTNETTRUNKFACTORY_FLAG_NO_PROMISC)),
+                    ("%#x\n", fFlags), VERR_INVALID_PARAMETER);
+
+    PVBOXNETADP_ADAPTER pAdapter = NULL;
+    NdisAcquireSpinLock(&pGlobals->Lock);
+    RTListForEach(&g_VBoxNetAdpGlobals.ListOfAdapters, pAdapter, VBOXNETADP_ADAPTER, node)
+    {
+        Log(("vboxNetAdpWinFactoryCreateAndConnect: evaluating adapter=%s\n", pAdapter->szName));
+        if (!RTStrICmp(pszName, pAdapter->szName))
+        {
+            pAdapter->pSwitchPort = pSwitchPort;
+            *ppIfPort = &pAdapter->MyPort;
+            NdisReleaseSpinLock(&g_VBoxNetAdpGlobals.Lock); // @todo too early? adp should have been connected by the time we do this
+            Log(("vboxNetAdpWinFactoryCreateAndConnect: found matching adapter, name=%s\n", pszName));
+            vboxNetAdpWinReportCapabilities(pAdapter);
+            // @todo I guess there is no need in vboxNetAdpWinRegisterIpAddrNotifier(pThis);
+            LogFlow(("<==vboxNetAdpWinFactoryCreateAndConnect: return VINF_SUCCESS\n"));
+            return VINF_SUCCESS;
+        }
+    }
+    NdisReleaseSpinLock(&pGlobals->Lock);
+    // @todo vboxNetAdpLogErrorEvent(IO_ERR_INTERNAL_ERROR, STATUS_SUCCESS, 6);
+    LogFlow(("<==vboxNetAdpWinFactoryCreateAndConnect: return VERR_INTNET_FLT_IF_NOT_FOUND\n"));
+    return VERR_INTNET_FLT_IF_NOT_FOUND;
+}
+
+
+/**
+ * @copydoc INTNETTRUNKFACTORY::pfnRelease
+ */
+static DECLCALLBACK(void) vboxNetAdpWinFactoryRelease(PINTNETTRUNKFACTORY pIfFactory)
+{
+    PVBOXNETADPGLOBALS pGlobals = (PVBOXNETADPGLOBALS)((uint8_t *)pIfFactory - RT_OFFSETOF(VBOXNETADPGLOBALS, TrunkFactory));
+
+    NdisAcquireSpinLock(&pGlobals->Lock);
+    int32_t cRefs = ASMAtomicDecS32(&pGlobals->cFactoryRefs);
+    if (cRefs == 0)
+        NdisSetEvent(&pGlobals->EventUnloadAllowed);
+    NdisReleaseSpinLock(&pGlobals->Lock);
+    Assert(cRefs >= 0); NOREF(cRefs);
+    LogFlow(("vboxNetAdpWinFactoryRelease: cRefs=%d (new)\n", cRefs));
+}
+
+
+
+/* IDC */
+
+DECLINLINE(const char *) vboxNetAdpWinIdcStateToText(uint32_t enmState)
+{
+    switch (enmState)
+    {
+        case kVBoxNetAdpWinIdcState_Disconnected: return "Disconnected";
+        case kVBoxNetAdpWinIdcState_Connecting: return "Connecting";
+        case kVBoxNetAdpWinIdcState_Connected: return "Connected";
+        case kVBoxNetAdpWinIdcState_Stopping: return "Stopping";
+    }
+    return "Unknown";
+}
+
+static VOID vboxNetAdpWinInitIdcWorker(PVOID pvContext)
+{
+    int rc;
+    PVBOXNETADPGLOBALS pGlobals = (PVBOXNETADPGLOBALS)pvContext;
+
+    /*
+     * Note that we break the rules here and access IDC state wihout acquiring
+     * the lock. This is ok because vboxNetAdpWinUnload will wait for this
+     * thread to terminate itself and we always use atomic access to IDC state.
+     * We check the state (while holding the lock) further when we have succeeded
+     * to connect. We cannot take the lock here and release it later as we will
+     * be holding it for too long.
+     */
+    while (ASMAtomicReadU32(&pGlobals->enmIdcState) == kVBoxNetAdpWinIdcState_Connecting)
+    {
+        /*
+         * Establish a connection to SUPDRV and register our component factory.
+         */
+        rc = SUPR0IdcOpen(&pGlobals->SupDrvIDC, 0 /* iReqVersion = default */, 0 /* iMinVersion = default */, NULL, NULL, NULL);
+        if (RT_SUCCESS(rc))
+        {
+            rc = SUPR0IdcComponentRegisterFactory(&pGlobals->SupDrvIDC, &pGlobals->SupDrvFactory);
+            if (RT_SUCCESS(rc))
+            {
+                /*
+                 * At this point we should take the lock to access IDC state as
+                 * we technically may now race with factory methods.
+                 */
+                NdisAcquireSpinLock(&pGlobals->Lock);
+                bool fSuccess = ASMAtomicCmpXchgU32(&pGlobals->enmIdcState,
+                                                    kVBoxNetAdpWinIdcState_Connected,
+                                                    kVBoxNetAdpWinIdcState_Connecting);
+                NdisReleaseSpinLock(&pGlobals->Lock);
+                if (!fSuccess)
+                {
+                    /* The state has been changed (the only valid transition is to "Stopping"), undo init */
+                    rc = SUPR0IdcComponentDeregisterFactory(&pGlobals->SupDrvIDC, &pGlobals->SupDrvFactory);
+                    AssertRC(rc);
+                    SUPR0IdcClose(&pGlobals->SupDrvIDC);
+                    Log(("vboxNetAdpWinInitIdcWorker: state change (Connecting -> %s) while initializing IDC, closed IDC, rc=0x%x\n",
+                         vboxNetAdpWinIdcStateToText(ASMAtomicReadU32(&pGlobals->enmIdcState)), rc));
+                }
+                else
+                {
+                    Log(("vboxNetAdpWinInitIdcWorker: IDC state change Connecting -> Connected\n"));
+                }
+            }
+        }
+        else
+        {
+            LARGE_INTEGER WaitIn100nsUnits;
+            WaitIn100nsUnits.QuadPart = -(LONGLONG)5000000; /* 0.5 sec */
+            KeDelayExecutionThread(KernelMode, FALSE /* non-alertable */, &WaitIn100nsUnits);
+        }
+    }
+    PsTerminateSystemThread(STATUS_SUCCESS);
+}
+
+
+DECLHIDDEN(int) vboxNetAdpWinStartInitIdcThread(PVBOXNETADPGLOBALS pGlobals)
+{
+    int rc = VERR_INVALID_STATE;
+
+    /* No locking needed yet */
+    if (ASMAtomicCmpXchgU32(&pGlobals->enmIdcState, kVBoxNetAdpWinIdcState_Connecting, kVBoxNetAdpWinIdcState_Disconnected))
+    {
+        Log(("vboxNetAdpWinStartInitIdcThread: IDC state change Diconnected -> Connecting\n"));
+
+        NTSTATUS Status = PsCreateSystemThread(&g_VBoxNetAdpGlobals.hInitIdcThread,
+                                               THREAD_ALL_ACCESS,
+                                               NULL,
+                                               NULL,
+                                               NULL,
+                                               vboxNetAdpWinInitIdcWorker,
+                                               &g_VBoxNetAdpGlobals);
+        Log(("vboxNetAdpWinStartInitIdcThread: create IDC initialization thread, status=0x%x\n", Status));
+        if (Status != STATUS_SUCCESS)
+        {
+            LogError(("vboxNetAdpWinStartInitIdcThread: IDC initialization failed (system thread creation, status=0x%x)\n", Status));
+            /*
+             * We failed to init IDC and there will be no second chance.
+             */
+            Log(("vboxNetAdpWinStartInitIdcThread: IDC state change Connecting -> Diconnected\n"));
+            ASMAtomicWriteU32(&g_VBoxNetAdpGlobals.enmIdcState, kVBoxNetAdpWinIdcState_Disconnected);
+        }
+        rc = RTErrConvertFromNtStatus(Status);
+    }
+    return rc;
+}
+
+
+
+/* === !!!! */
 
 
 NDIS_OID g_SupportedOids[] =
@@ -177,36 +1024,104 @@ DECLHIDDEN(NDIS_STATUS) vboxNetAdpWinAllocAdapter(NDIS_HANDLE hAdapter, PVBOXNET
 {
     NDIS_STATUS Status = NDIS_STATUS_SUCCESS;
     PVBOXNETADP_ADAPTER pAdapter = NULL;
+    PVBOXNETADPGLOBALS pGlobals = &g_VBoxNetAdpGlobals;
 
     LogFlow(("==>vboxNetAdpWinAllocAdapter: adapter handle=%p\n", hAdapter));
 
+    /* Get the name */
+    UNICODE_STRING strUnicodeName;
+    Status = NdisMQueryAdapterInstanceName(&strUnicodeName, hAdapter);
+    if (Status != NDIS_STATUS_SUCCESS)
+    {
+        LogError(("vboxNetAdpWinAllocAdapter: NdisMQueryAdapterInstanceName failed with 0x%x\n", Status));
+        return Status;
+    }
+
+    ANSI_STRING strAnsiName;
+    /* We use the miniport name to associate this filter module with the netflt instance */
+    NTSTATUS rc = RtlUnicodeStringToAnsiString(&strAnsiName,
+                                               &strUnicodeName,
+                                               TRUE);
+    if (rc != STATUS_SUCCESS)
+    {
+        LogError(("vboxNetAdpWinAllocAdapter: RtlUnicodeStringToAnsiString(%ls) failed with 0x%x\n",
+                  strUnicodeName, rc));
+        //vboxNetAdpLogErrorEvent(IO_ERR_INTERNAL_ERROR, NDIS_STATUS_FAILURE, 2);
+        NdisFreeMemory(strUnicodeName.Buffer, 0, 0);
+        return NDIS_STATUS_FAILURE;
+    }
+    NdisFreeMemory(strUnicodeName.Buffer, 0, 0);
+    DbgPrint("vboxNetAdpWinAllocAdapter: name=%Z\n", &strAnsiName);
+
     *ppAdapter = NULL;
 
-    pAdapter = (PVBOXNETADP_ADAPTER)NdisAllocateMemoryWithTagPriority(g_VBoxNetAdpGlobals.hMiniportDriver,
-                                                                         sizeof(VBOXNETADP_ADAPTER),
-                                                                         VBOXNETADPWIN_TAG,
-                                                                         NormalPoolPriority);
+    UINT cbAdapterWithNameExtra = sizeof(VBOXNETADP_ADAPTER) + strAnsiName.Length;
+    pAdapter = (PVBOXNETADP_ADAPTER)NdisAllocateMemoryWithTagPriority(pGlobals->hMiniportDriver,
+                                                                      cbAdapterWithNameExtra,
+                                                                      VBOXNETADPWIN_TAG,
+                                                                      NormalPoolPriority);
     if (!pAdapter)
     {
+        RtlFreeAnsiString(&strAnsiName);
         Status = NDIS_STATUS_RESOURCES;
         Log(("vboxNetAdpWinAllocAdapter: Out of memory while allocating adapter context (size=%d)\n", sizeof(VBOXNETADP_ADAPTER)));
     }
     else
     {
-        NdisZeroMemory(pAdapter, sizeof(VBOXNETADP_ADAPTER));
-        pAdapter->hAdapter = hAdapter;
-        pAdapter->pGlobals = &g_VBoxNetAdpGlobals;
-        /// @todo Use netadp structure instead!
-    /* Use a locally administered version of the OUI we use for the guest NICs. */
-    pAdapter->MacAddr.au8[0] = 0x08 | 2;
-    pAdapter->MacAddr.au8[1] = 0x00;
-    pAdapter->MacAddr.au8[2] = 0x27;
-
-    pAdapter->MacAddr.au8[3] = (uIfIndex >> 16) & 0xFF;
-    pAdapter->MacAddr.au8[4] = (uIfIndex >> 8) & 0xFF;
-    pAdapter->MacAddr.au8[5] = uIfIndex & 0xFF;
+        NdisZeroMemory(pAdapter, cbAdapterWithNameExtra);
+        NdisMoveMemory(pAdapter->szName, strAnsiName.Buffer, strAnsiName.Length);
+        RtlFreeAnsiString(&strAnsiName);
+
+        /* Allocate buffer pool */
+        NET_BUFFER_LIST_POOL_PARAMETERS PoolParams;
+        NdisZeroMemory(&PoolParams, sizeof(PoolParams));
+        PoolParams.Header.Type = NDIS_OBJECT_TYPE_DEFAULT;
+        PoolParams.Header.Revision = NET_BUFFER_LIST_POOL_PARAMETERS_REVISION_1;
+        PoolParams.Header.Size = sizeof(PoolParams);
+        PoolParams.ProtocolId = NDIS_PROTOCOL_ID_DEFAULT;
+        PoolParams.fAllocateNetBuffer = TRUE;
+        PoolParams.ContextSize = 0;
+        PoolParams.PoolTag = VBOXNETADP_MEM_TAG;
+        pAdapter->hPool = NdisAllocateNetBufferListPool(hAdapter, &PoolParams);
+        if (!pAdapter->hPool)
+        {
+            LogError(("vboxNetAdpWinAllocAdapter: NdisAllocateNetBufferListPool failed\n"));
+            NdisFreeMemory(pAdapter, 0, 0);
+            return NDIS_STATUS_RESOURCES;
+        }
+        Log4(("vboxNetAdpWinAllocAdapter: allocated NBL+NB pool 0x%p\n", pAdapter->hPool));
 
-        /// @todo Statistics?
+        pAdapter->hAdapter = hAdapter;
+        pAdapter->MyPort.u32Version              = INTNETTRUNKIFPORT_VERSION;
+        pAdapter->MyPort.pfnRetain               = vboxNetAdpWinPortRetain;
+        pAdapter->MyPort.pfnRelease              = vboxNetAdpWinPortRelease;
+        pAdapter->MyPort.pfnDisconnectAndRelease = vboxNetAdpWinPortDisconnectAndRelease;
+        pAdapter->MyPort.pfnSetState             = vboxNetAdpWinPortSetState;
+        pAdapter->MyPort.pfnWaitForIdle          = vboxNetAdpWinPortWaitForIdle;
+        pAdapter->MyPort.pfnXmit                 = vboxNetAdpWinPortXmit;
+        pAdapter->MyPort.pfnNotifyMacAddress     = vboxNetAdpWinPortNotifyMacAddress;
+        pAdapter->MyPort.pfnConnectInterface     = vboxNetAdpWinPortConnectInterface;
+        pAdapter->MyPort.pfnDisconnectInterface  = vboxNetAdpWinPortDisconnectInterface;
+        pAdapter->MyPort.u32VersionEnd           = INTNETTRUNKIFPORT_VERSION;
+        pAdapter->pGlobals = pGlobals;
+        pAdapter->enmAdapterState = kVBoxNetAdpWinState_Initializing;
+        pAdapter->enmTrunkState = INTNETTRUNKIFSTATE_INACTIVE;
+        pAdapter->cBusy = 0;
+        NdisInitializeEvent(&pAdapter->EventIdle);
+        NdisSetEvent(&pAdapter->EventIdle); /* We are idle initially */
+
+        /* Use a locally administered version of the OUI we use for the guest NICs. */
+        pAdapter->MacAddr.au8[0] = 0x08 | 2;
+        pAdapter->MacAddr.au8[1] = 0x00;
+        pAdapter->MacAddr.au8[2] = 0x27;
+
+        pAdapter->MacAddr.au8[3] = (uIfIndex >> 16) & 0xFF;
+        pAdapter->MacAddr.au8[4] = (uIfIndex >> 8) & 0xFF;
+        pAdapter->MacAddr.au8[5] = uIfIndex & 0xFF;
+
+        NdisAcquireSpinLock(&pGlobals->Lock);
+        RTListPrepend(&pGlobals->ListOfAdapters, &pAdapter->node);
+        NdisReleaseSpinLock(&pGlobals->Lock);
 
         *ppAdapter = pAdapter;
     }
@@ -216,6 +1131,11 @@ DECLHIDDEN(NDIS_STATUS) vboxNetAdpWinAllocAdapter(NDIS_HANDLE hAdapter, PVBOXNET
 
 DECLHIDDEN(void) vboxNetAdpWinFreeAdapter(PVBOXNETADP_ADAPTER pAdapter)
 {
+    /* Remove from adapter chain */
+    NdisAcquireSpinLock(&pAdapter->pGlobals->Lock);
+    RTListNodeRemove(&pAdapter->node);
+    NdisReleaseSpinLock(&pAdapter->pGlobals->Lock);
+
     NdisFreeMemory(pAdapter, 0, 0);
 }
 
@@ -315,6 +1235,10 @@ DECLHIDDEN(NDIS_STATUS) vboxNetAdpWinInitializeEx(IN NDIS_HANDLE NdisMiniportHan
             Log(("vboxNetAdpWinInitializeEx: NdisMSetMiniportAttributes(general) failed with 0x%x\n", Status));
             break;
         }
+
+        VBOXNETADPWIN_ADAPTER_STATE enmPrevState = vboxNetAdpWinSetState(pAdapter, kVBoxNetAdpWinState_Paused);
+        RT_NOREF1(enmPrevState);
+        Assert(enmPrevState == kVBoxNetAdpWinState_Initializing);
     } while (false);
 
     if (Status != NDIS_STATUS_SUCCESS)
@@ -331,20 +1255,40 @@ DECLHIDDEN(VOID) vboxNetAdpWinHaltEx(IN NDIS_HANDLE MiniportAdapterContext,
                                      IN NDIS_HALT_ACTION HaltAction)
 {
     RT_NOREF1(HaltAction);
-    PVBOXNETADP_ADAPTER pAdapter = (PVBOXNETADP_ADAPTER)MiniportAdapterContext;
+    PVBOXNETADP_ADAPTER pThis = (PVBOXNETADP_ADAPTER)MiniportAdapterContext;
     LogFlow(("==>vboxNetAdpWinHaltEx\n"));
-    /// @todo Stop something?
-    if (pAdapter)
-        vboxNetAdpWinFreeAdapter(pAdapter);
+    AssertPtr(pThis);
+    Assert(vboxNetAdpWinGetState(pThis) == kVBoxNetAdpWinState_Paused);
+    /*
+     * Check if the trunk is active which means the adapter gets disabled
+     * while it is used by VM(s) and we need to disconnect the trunk.
+     */
+    if (pThis->pSwitchPort && pThis->enmTrunkState == INTNETTRUNKIFSTATE_ACTIVE)
+        pThis->pSwitchPort->pfnDisconnect(pThis->pSwitchPort, &pThis->MyPort, NULL);
+    /*
+     * Since we are already in the paused state and we have disconnected
+     * the trunk, we can safely destroy this adapter.
+     */
+    vboxNetAdpWinFreeAdapter(pThis);
     LogFlow(("<==vboxNetAdpWinHaltEx\n"));
 }
 
 DECLHIDDEN(NDIS_STATUS) vboxNetAdpWinPause(IN NDIS_HANDLE MiniportAdapterContext,
                                            IN PNDIS_MINIPORT_PAUSE_PARAMETERS MiniportPauseParameters)
 {
-    RT_NOREF2(MiniportAdapterContext, MiniportPauseParameters);
+    RT_NOREF1(MiniportPauseParameters);
+    PVBOXNETADP_ADAPTER pThis = (PVBOXNETADP_ADAPTER)MiniportAdapterContext;
     NDIS_STATUS Status = NDIS_STATUS_SUCCESS;
     LogFlow(("==>vboxNetAdpWinPause\n"));
+    VBOXNETADPWIN_ADAPTER_STATE enmPrevState = vboxNetAdpWinSetState(pThis, kVBoxNetAdpWinState_Pausing);
+    Assert(enmPrevState == kVBoxNetAdpWinState_Running);
+    if (!NdisWaitEvent(&pThis->EventIdle, 1000 /* ms */))
+    {
+        LogError(("vboxNetAdpWinPause: timed out while pausing the adapter\n"));
+        // @todo implement NDIS_STATUS_PENDING case? probably not.
+    }
+    enmPrevState = vboxNetAdpWinSetState(pThis, kVBoxNetAdpWinState_Paused);
+    Assert(enmPrevState == kVBoxNetAdpWinState_Pausing);
     LogFlow(("<==vboxNetAdpWinPause: status=0x%x\n", Status));
     return Status;
 }
@@ -352,14 +1296,34 @@ DECLHIDDEN(NDIS_STATUS) vboxNetAdpWinPause(IN NDIS_HANDLE MiniportAdapterContext
 DECLHIDDEN(NDIS_STATUS) vboxNetAdpWinRestart(IN NDIS_HANDLE MiniportAdapterContext,
                                              IN PNDIS_MINIPORT_RESTART_PARAMETERS MiniportRestartParameters)
 {
-    RT_NOREF2(MiniportAdapterContext, MiniportRestartParameters);
+    RT_NOREF1(MiniportRestartParameters);
+    PVBOXNETADP_ADAPTER pThis = (PVBOXNETADP_ADAPTER)MiniportAdapterContext;
     NDIS_STATUS Status = NDIS_STATUS_SUCCESS;
     LogFlow(("==>vboxNetAdpWinRestart\n"));
+    VBOXNETADPWIN_ADAPTER_STATE enmPrevState = vboxNetAdpWinSetState(pThis, kVBoxNetAdpWinState_Restarting);
+    Assert(enmPrevState == kVBoxNetAdpWinState_Paused);
+    // @todo anything?
+    enmPrevState = vboxNetAdpWinSetState(pThis, kVBoxNetAdpWinState_Running);
+    Assert(enmPrevState == kVBoxNetAdpWinState_Restarting);
     LogFlow(("<==vboxNetAdpWinRestart: status=0x%x\n", Status));
     return Status;
 }
 
-DECLHIDDEN(NDIS_STATUS) vboxNetAdpWinOidRqQuery(PVBOXNETADP_ADAPTER pAdapter,
+DECLINLINE(uint64_t) vboxNetAdpWinStatsTotals(uint64_t *pStats)
+{
+    return pStats[kVBoxNetAdpWinPacketType_Unicast]
+        + pStats[kVBoxNetAdpWinPacketType_Multicast]
+        + pStats[kVBoxNetAdpWinPacketType_Broadcast];
+}
+
+DECLINLINE(PVOID) vboxNetAdpWinStatsU64(uint64_t *pTmp, ULONG *pcbTmp, uint64_t u64Stat)
+{
+    *pcbTmp = sizeof(*pTmp);
+    *pTmp = u64Stat;
+    return pTmp;
+}
+
+DECLHIDDEN(NDIS_STATUS) vboxNetAdpWinOidRqQuery(PVBOXNETADP_ADAPTER pThis,
                                                 PNDIS_OID_REQUEST pRequest)
 {
     NDIS_STATUS Status = NDIS_STATUS_SUCCESS;
@@ -394,17 +1358,17 @@ DECLHIDDEN(NDIS_STATUS) vboxNetAdpWinOidRqQuery(PVBOXNETADP_ADAPTER pAdapter,
         case OID_GEN_TRANSMIT_BLOCK_SIZE:
             ulTmp = VBOXNETADP_MAX_FRAME_SIZE;
             break;
-        case OID_GEN_RCV_OK:
-        case OID_GEN_XMIT_OK:
-            u64Tmp = 0;
-            pInfo = &u64Tmp;
-            cbInfo = sizeof(u64Tmp);
-            break;
         case OID_GEN_RECEIVE_BUFFER_SPACE:
         case OID_GEN_TRANSMIT_BUFFER_SPACE:
             /// @todo Make configurable
             ulTmp = VBOXNETADP_MAX_FRAME_SIZE * 40;
             break;
+        case OID_GEN_RCV_OK:
+            pInfo = vboxNetAdpWinStatsU64(&u64Tmp, &cbInfo, vboxNetAdpWinStatsTotals(pThis->au64StatsInPackets));
+            break;
+        case OID_GEN_XMIT_OK:
+            pInfo = vboxNetAdpWinStatsU64(&u64Tmp, &cbInfo, vboxNetAdpWinStatsTotals(pThis->au64StatsOutPackets));
+            break;
         case OID_GEN_STATISTICS:
         {
             PNDIS_STATISTICS_INFO pStats =
@@ -417,7 +1381,40 @@ DECLHIDDEN(NDIS_STATUS) vboxNetAdpWinOidRqQuery(PVBOXNETADP_ADAPTER pAdapter,
             pStats->Header.Type = NDIS_OBJECT_TYPE_DEFAULT;
             pStats->Header.Revision = NDIS_STATISTICS_INFO_REVISION_1;
             pStats->Header.Size = NDIS_SIZEOF_STATISTICS_INFO_REVISION_1;
-            /// @todo We need some stats, don't we?
+            pStats->SupportedStatistics =
+                  NDIS_STATISTICS_FLAGS_VALID_DIRECTED_FRAMES_RCV
+                | NDIS_STATISTICS_FLAGS_VALID_MULTICAST_FRAMES_RCV
+                | NDIS_STATISTICS_FLAGS_VALID_BROADCAST_FRAMES_RCV
+                | NDIS_STATISTICS_FLAGS_VALID_BYTES_RCV
+                | NDIS_STATISTICS_FLAGS_VALID_RCV_DISCARDS
+                | NDIS_STATISTICS_FLAGS_VALID_RCV_ERROR
+                | NDIS_STATISTICS_FLAGS_VALID_DIRECTED_FRAMES_XMIT
+                | NDIS_STATISTICS_FLAGS_VALID_MULTICAST_FRAMES_XMIT
+                | NDIS_STATISTICS_FLAGS_VALID_BROADCAST_FRAMES_XMIT
+                | NDIS_STATISTICS_FLAGS_VALID_BYTES_XMIT
+                | NDIS_STATISTICS_FLAGS_VALID_XMIT_ERROR
+                | NDIS_STATISTICS_FLAGS_VALID_XMIT_DISCARDS
+                | NDIS_STATISTICS_FLAGS_VALID_DIRECTED_BYTES_RCV
+                | NDIS_STATISTICS_FLAGS_VALID_MULTICAST_BYTES_RCV
+                | NDIS_STATISTICS_FLAGS_VALID_BROADCAST_BYTES_RCV
+                | NDIS_STATISTICS_FLAGS_VALID_DIRECTED_BYTES_XMIT
+                | NDIS_STATISTICS_FLAGS_VALID_MULTICAST_BYTES_XMIT
+                | NDIS_STATISTICS_FLAGS_VALID_BROADCAST_BYTES_XMIT;
+
+            pStats->ifHCInOctets = vboxNetAdpWinStatsTotals(pThis->au64StatsInOctets);
+            pStats->ifHCInUcastPkts = ASMAtomicReadU64(&pThis->au64StatsInPackets[kVBoxNetAdpWinPacketType_Unicast]);
+            pStats->ifHCInMulticastPkts = ASMAtomicReadU64(&pThis->au64StatsInPackets[kVBoxNetAdpWinPacketType_Multicast]);
+            pStats->ifHCInBroadcastPkts = ASMAtomicReadU64(&pThis->au64StatsInPackets[kVBoxNetAdpWinPacketType_Broadcast]);
+            pStats->ifHCOutOctets = vboxNetAdpWinStatsTotals(pThis->au64StatsOutOctets);;
+            pStats->ifHCOutUcastPkts = ASMAtomicReadU64(&pThis->au64StatsOutPackets[kVBoxNetAdpWinPacketType_Unicast]);
+            pStats->ifHCOutMulticastPkts = ASMAtomicReadU64(&pThis->au64StatsOutPackets[kVBoxNetAdpWinPacketType_Multicast]);
+            pStats->ifHCOutBroadcastPkts = ASMAtomicReadU64(&pThis->au64StatsOutPackets[kVBoxNetAdpWinPacketType_Broadcast]);
+            pStats->ifHCInUcastOctets = ASMAtomicReadU64(&pThis->au64StatsInOctets[kVBoxNetAdpWinPacketType_Unicast]);
+            pStats->ifHCInMulticastOctets = ASMAtomicReadU64(&pThis->au64StatsInOctets[kVBoxNetAdpWinPacketType_Multicast]);
+            pStats->ifHCInBroadcastOctets = ASMAtomicReadU64(&pThis->au64StatsInOctets[kVBoxNetAdpWinPacketType_Broadcast]);
+            pStats->ifHCOutUcastOctets = ASMAtomicReadU64(&pThis->au64StatsOutOctets[kVBoxNetAdpWinPacketType_Unicast]);
+            pStats->ifHCOutMulticastOctets = ASMAtomicReadU64(&pThis->au64StatsOutOctets[kVBoxNetAdpWinPacketType_Multicast]);
+            pStats->ifHCOutBroadcastOctets = ASMAtomicReadU64(&pThis->au64StatsOutOctets[kVBoxNetAdpWinPacketType_Broadcast]);
             break;
         }
         case OID_GEN_VENDOR_DESCRIPTION:
@@ -432,16 +1429,16 @@ DECLHIDDEN(NDIS_STATUS) vboxNetAdpWinOidRqQuery(PVBOXNETADP_ADAPTER pAdapter,
             break;
         case OID_802_3_PERMANENT_ADDRESS:
         case OID_802_3_CURRENT_ADDRESS:
-            pInfo = &pAdapter->MacAddr;
-            cbInfo = sizeof(pAdapter->MacAddr);
+            pInfo = &pThis->MacAddr;
+            cbInfo = sizeof(pThis->MacAddr);
             break;
             //case OID_802_3_MULTICAST_LIST:
         case OID_802_3_MAXIMUM_LIST_SIZE:
             ulTmp = VBOXNETADP_MCAST_LIST_SIZE;
             break;
         case OID_PNP_CAPABILITIES:
-            pInfo = &pAdapter->pGlobals->PMCaps;
-            cbInfo = sizeof(pAdapter->pGlobals->PMCaps);
+            pInfo = &pThis->pGlobals->PMCaps;
+            cbInfo = sizeof(pThis->pGlobals->PMCaps);
             break;
         case OID_PNP_QUERY_POWER:
             pInfo = NULL; /* Do not copy */
@@ -573,8 +1570,14 @@ DECLHIDDEN(VOID) vboxNetAdpWinSendNetBufferLists(IN NDIS_HANDLE MiniportAdapterC
     PVBOXNETADP_ADAPTER pAdapter = (PVBOXNETADP_ADAPTER)MiniportAdapterContext;
     LogFlow(("==>vboxNetAdpWinSendNetBufferLists\n"));
     PNET_BUFFER_LIST pNbl = NetBufferLists;
+    vboxNetAdpWinDumpPackets("vboxNetAdpWinSendNetBufferLists: got", pNbl);
+
+    /* We alwast complete all send requests. */
     for (pNbl = NetBufferLists; pNbl; pNbl = NET_BUFFER_LIST_NEXT_NBL(pNbl))
+    {
+        vboxNetAdpWinForwardToIntNet(pAdapter, pNbl, INTNETTRUNKDIR_HOST);
         NET_BUFFER_LIST_STATUS(pNbl) = NDIS_STATUS_SUCCESS;
+    }
     NdisMSendNetBufferListsComplete(pAdapter->hAdapter, NetBufferLists,
                                     (SendFlags & NDIS_SEND_FLAGS_DISPATCH_LEVEL) ?
                                     NDIS_SEND_COMPLETE_FLAGS_DISPATCH_LEVEL : 0);
@@ -585,9 +1588,27 @@ DECLHIDDEN(VOID) vboxNetAdpWinReturnNetBufferLists(IN NDIS_HANDLE MiniportAdapte
                                                    IN PNET_BUFFER_LIST NetBufferLists,
                                                    IN ULONG ReturnFlags)
 {
-    RT_NOREF3(MiniportAdapterContext, NetBufferLists, ReturnFlags);
     LogFlow(("==>vboxNetAdpWinReturnNetBufferLists\n"));
-    Log(("vboxNetAdpWinReturnNetBufferLists: We should not be here!\n"));
+    RT_NOREF1(ReturnFlags);
+    PVBOXNETADP_ADAPTER pThis = (PVBOXNETADP_ADAPTER)MiniportAdapterContext;
+    PNET_BUFFER_LIST pList = NetBufferLists;
+    while (pList)
+    {
+        Assert(pList->SourceHandle == pThis->hAdapter);
+        Assert(NET_BUFFER_LIST_FIRST_NB(pList));
+        Assert(NET_BUFFER_FIRST_MDL(NET_BUFFER_LIST_FIRST_NB(pList)));
+
+        PNET_BUFFER_LIST pNextList = NET_BUFFER_LIST_NEXT_NBL(pList);
+
+        vboxNetAdpWinFreeMdlChain(NET_BUFFER_FIRST_MDL(NET_BUFFER_LIST_FIRST_NB(pList)));
+        NdisFreeNetBufferList(pList);
+        Log4(("vboxNetLwfWinReturnNetBufferLists: freed NBL+NB+MDL+Data 0x%p\n", pList));
+        Assert(ASMAtomicReadS32(&pThis->cBusy) > 0);
+        if (ASMAtomicDecS32(&pThis->cBusy) == 0)
+            NdisSetEvent(&pThis->EventIdle);
+
+        pList = pNextList;
+    }
     LogFlow(("<==vboxNetAdpWinReturnNetBufferLists\n"));
 }
 
@@ -653,11 +1674,59 @@ DECLHIDDEN(VOID) vboxNetAdpWinUnload(IN PDRIVER_OBJECT DriverObject)
 {
     RT_NOREF1(DriverObject);
     LogFlow(("==>vboxNetAdpWinUnload\n"));
-    //vboxNetAdpWinDevDestroy(&g_VBoxNetAdpGlobals);
-    if (g_VBoxNetAdpGlobals.hMiniportDriver)
-        NdisMDeregisterMiniportDriver(g_VBoxNetAdpGlobals.hMiniportDriver);
-    //NdisFreeSpinLock(&g_VBoxNetAdpGlobals.Lock);
+    PVBOXNETADPGLOBALS pGlobals = &g_VBoxNetAdpGlobals;
+    int rc;
+    NDIS_STATUS Status;
+    PKTHREAD pThread = NULL;
+
+    /* We are about to disconnect IDC, let's make it clear so the factories will know */
+    NdisAcquireSpinLock(&pGlobals->Lock);
+    uint32_t enmPrevState = ASMAtomicXchgU32(&g_VBoxNetAdpGlobals.enmIdcState, kVBoxNetAdpWinIdcState_Stopping);
+    NdisReleaseSpinLock(&pGlobals->Lock);
+    Log(("vboxNetAdpWinUnload: IDC state change %s -> Stopping\n", vboxNetAdpWinIdcStateToText(enmPrevState)));
+
+    switch (enmPrevState)
+    {
+        case kVBoxNetAdpWinIdcState_Disconnected:
+            /* Have not even attempted to connect -- nothing to do. */
+            break;
+        case kVBoxNetAdpWinIdcState_Stopping:
+            /* Impossible, but another thread is alreading doing StopIdc, bail out */
+            LogError(("vboxNetAdpWinUnload: called in 'Stopping' state\n"));
+            break;
+        case kVBoxNetAdpWinIdcState_Connecting:
+            /* the worker thread is running, let's wait for it to stop */
+            Status = ObReferenceObjectByHandle(g_VBoxNetAdpGlobals.hInitIdcThread,
+                                               THREAD_ALL_ACCESS, NULL, KernelMode,
+                                               (PVOID*)&pThread, NULL);
+            if (Status == STATUS_SUCCESS)
+            {
+                KeWaitForSingleObject(pThread, Executive, KernelMode, FALSE, NULL);
+                ObDereferenceObject(pThread);
+            }
+            else
+            {
+                LogError(("vboxNetAdpWinStopIdc: ObReferenceObjectByHandle(%p) failed with 0x%x\n",
+                     g_VBoxNetAdpGlobals.hInitIdcThread, Status));
+            }
+            break;
+        case kVBoxNetAdpWinIdcState_Connected:
+            /* the worker succeeded in IDC init and terminated */
+            /* Make sure nobody uses the trunk factory. Wait half a second if needed. */
+            if (!NdisWaitEvent(&pGlobals->EventUnloadAllowed, 500))
+                LogRel(("VBoxNetAdp: unloading driver while trunk factory is in use!\n"));
+            rc = SUPR0IdcComponentDeregisterFactory(&pGlobals->SupDrvIDC, &pGlobals->SupDrvFactory);
+            AssertRC(rc);
+            SUPR0IdcClose(&pGlobals->SupDrvIDC);
+            Log(("vboxNetAdpWinUnload: closed IDC, rc=0x%x\n", rc));
+            break;
+    }
+    if (pGlobals->hMiniportDriver)
+        NdisMDeregisterMiniportDriver(pGlobals->hMiniportDriver);
+    NdisFreeSpinLock(&pGlobals->Lock);
     LogFlow(("<==vboxNetAdpWinUnload\n"));
+    RTLogDestroy(RTLogRelSetDefaultInstance(NULL));
+    RTLogDestroy(RTLogSetDefaultInstance(NULL));
     RTR0Term();
 }
 
@@ -708,9 +1777,6 @@ DECLHIDDEN(NDIS_STATUS) vboxNetAdpWinRegister(PDRIVER_OBJECT pDriverObject, PUNI
     if (Status == STATUS_SUCCESS)
     {
         Log(("vboxNetAdpWinRegister: successfully registered miniport driver; registering device...\n"));
-        //Status = vboxNetAdpWinDevCreate(&g_VBoxNetAdpGlobals);
-        //Assert(Status == STATUS_SUCCESS);
-        //Log(("vboxNetAdpWinRegister: vboxNetAdpWinDevCreate() returned 0x%x\n", Status));
     }
     else
     {
@@ -737,19 +1803,34 @@ NTSTATUS DriverEntry(IN PDRIVER_OBJECT pDriverObject, IN PUNICODE_STRING pRegist
     if (RT_SUCCESS(rc))
     {
         NdisZeroMemory(&g_VBoxNetAdpGlobals, sizeof (g_VBoxNetAdpGlobals));
-        //NdisAllocateSpinLock(&g_VBoxNetAdpGlobals.Lock);
+        RTListInit(&g_VBoxNetAdpGlobals.ListOfAdapters);
+        NdisAllocateSpinLock(&g_VBoxNetAdpGlobals.Lock);
+        NdisInitializeEvent(&g_VBoxNetAdpGlobals.EventUnloadAllowed);
         //g_VBoxNetAdpGlobals.PMCaps.WakeUpCapabilities.Flags = NDIS_DEVICE_WAKE_UP_ENABLE;
         g_VBoxNetAdpGlobals.PMCaps.WakeUpCapabilities.MinMagicPacketWakeUp = NdisDeviceStateUnspecified;
         g_VBoxNetAdpGlobals.PMCaps.WakeUpCapabilities.MinPatternWakeUp = NdisDeviceStateUnspecified;
 
-        Status = vboxNetAdpWinRegister(pDriverObject, pRegistryPath);
-        Assert(Status == STATUS_SUCCESS);
-        if (Status == NDIS_STATUS_SUCCESS)
+        /* Initialize SupDrv interface */
+        g_VBoxNetAdpGlobals.SupDrvFactory.pfnQueryFactoryInterface = vboxNetAdpWinQueryFactoryInterface;
+        memcpy(g_VBoxNetAdpGlobals.SupDrvFactory.szName, "VBoxNetAdp", sizeof("VBoxNetAdp"));
+        /* Initialize trunk factory interface */
+        g_VBoxNetAdpGlobals.TrunkFactory.pfnRelease = vboxNetAdpWinFactoryRelease;
+        g_VBoxNetAdpGlobals.TrunkFactory.pfnCreateAndConnect = vboxNetAdpWinFactoryCreateAndConnect;
+
+        rc = vboxNetAdpWinStartInitIdcThread(&g_VBoxNetAdpGlobals);
+        if (RT_SUCCESS(rc))
         {
-            Log(("NETADP: started successfully\n"));
-            return STATUS_SUCCESS;
+            Status = vboxNetAdpWinRegister(pDriverObject, pRegistryPath);
+            Assert(Status == STATUS_SUCCESS);
+            if (Status == NDIS_STATUS_SUCCESS)
+            {
+                Log(("NETADP: started successfully\n"));
+                return STATUS_SUCCESS;
+            }
         }
-        //NdisFreeSpinLock(&g_VBoxNetAdpGlobals.Lock);
+        else
+            Status = NDIS_STATUS_FAILURE;
+        NdisFreeSpinLock(&g_VBoxNetAdpGlobals.Lock);
         RTLogDestroy(RTLogRelSetDefaultInstance(NULL));
         RTLogDestroy(RTLogSetDefaultInstance(NULL));
 
diff --git a/src/VBox/HostDrivers/VBoxNetAdp/win/VBoxNetAdp6.inf b/src/VBox/HostDrivers/VBoxNetAdp/win/VBoxNetAdp6.inf
index 2e96662..2ca4ab0 100644
--- a/src/VBox/HostDrivers/VBoxNetAdp/win/VBoxNetAdp6.inf
+++ b/src/VBox/HostDrivers/VBoxNetAdp/win/VBoxNetAdp6.inf
@@ -47,16 +47,13 @@ Characteristics    = 0x1 ; NCF_VIRTUAL
 *PhysicalMediaType = 14  ; NdisPhysicalMedium802_3
 CopyFiles          = VBoxNetAdp6.Files.Sys
 
-[VBoxNetAdp6.ndi.Remove.Services]
-DelService       = VBoxNetAdp,0x200 ; Stop the service before uninstalling
-
 [VBoxNetAdp6.ndi.Services]
 AddService = VBoxNetAdp, 2, VBoxNetAdp6.AddService
 
 [VBoxNetAdp6.AddService]
 DisplayName    = %VBoxNetAdp6Service_Desc%
 ServiceType    = 1 ;SERVICE_KERNEL_DRIVER
-StartType      = 1 ;SERVICE_SYSTEM_START
+StartType      = 3 ;SERVICE_DEMAND_START
 ErrorControl   = 1 ;SERVICE_ERROR_NORMAL
 ServiceBinary  = %12%\VBoxNetAdp6.sys
 LoadOrderGroup = NDIS
diff --git a/src/VBox/HostDrivers/VBoxNetFlt/win/drv/VBoxNetLwf-win.cpp b/src/VBox/HostDrivers/VBoxNetFlt/win/drv/VBoxNetLwf-win.cpp
index 2abfbc6..0b121a3 100644
--- a/src/VBox/HostDrivers/VBoxNetFlt/win/drv/VBoxNetLwf-win.cpp
+++ b/src/VBox/HostDrivers/VBoxNetFlt/win/drv/VBoxNetLwf-win.cpp
@@ -1009,6 +1009,8 @@ static void vboxNetLwfWinFreePools(PVBOXNETLWF_MODULE pModuleCtx, int cPools)
 }
 #endif /* VBOXNETLWF_FIXED_SIZE_POOLS */
 
+DECLARE_GLOBAL_CONST_UNICODE_STRING(g_strHostOnlyMiniportName, L"VirtualBox Host-Only");
+
 static NDIS_STATUS vboxNetLwfWinAttach(IN NDIS_HANDLE hFilter, IN NDIS_HANDLE hDriverCtx,
                                        IN PNDIS_FILTER_ATTACH_PARAMETERS pParameters)
 {
@@ -1021,6 +1023,21 @@ static NDIS_STATUS vboxNetLwfWinAttach(IN NDIS_HANDLE hFilter, IN NDIS_HANDLE hD
         return NDIS_STATUS_FAILURE;
     }
 
+    /*
+     * We need a copy of NDIS_STRING structure as we are going to modify length
+     * of the base miniport instance name since RTL does not support comparing
+     * first n characters of two strings. We check if miniport names start with
+     * "Virtual Host-Only" to detect host-only adapters. It is a waste of resources
+     * to bind our filter to host-only adapters since they now operate independently.
+     */
+    NDIS_STRING strTruncatedInstanceName = *pParameters->BaseMiniportInstanceName; /* Do not copy data, only the structure itself */
+    strTruncatedInstanceName.Length = g_strHostOnlyMiniportName.Length; /* Truncate instance name */
+    if (RtlEqualUnicodeString(&strTruncatedInstanceName, &g_strHostOnlyMiniportName, TRUE /* Case insensitive */))
+    {
+        DbgPrint("vboxNetLwfWinAttach: won't attach to %wZ\n", pParameters->BaseMiniportInstanceName);
+        return NDIS_STATUS_FAILURE;
+    }
+
     ANSI_STRING strMiniportName;
     /* We use the miniport name to associate this filter module with the netflt instance */
     NTSTATUS rc = RtlUnicodeStringToAnsiString(&strMiniportName,
diff --git a/src/VBox/HostDrivers/adpctl/VBoxNetAdpCtl.cpp b/src/VBox/HostDrivers/adpctl/VBoxNetAdpCtl.cpp
index c4bd19f..84003a0 100644
--- a/src/VBox/HostDrivers/adpctl/VBoxNetAdpCtl.cpp
+++ b/src/VBox/HostDrivers/adpctl/VBoxNetAdpCtl.cpp
@@ -32,6 +32,7 @@
 #include <sys/stat.h>
 #include <fcntl.h>
 #ifdef RT_OS_LINUX
+# include <arpa/inet.h>
 # include <net/if.h>
 # include <linux/types.h>
 /* Older versions of ethtool.h rely on these: */
@@ -253,14 +254,79 @@ protected:
 };
 
 
+#ifdef RT_OS_LINUX
+/*
+ * Helper class to incapsulate IPv4 address conversion.
+ */
+class AddressIPv4
+{
+public:
+    AddressIPv4(const char *pcszAddress, const char *pcszNetmask = 0)
+        {
+            if (pcszNetmask)
+                m_Prefix = maskToPrefix(pcszNetmask);
+            else
+            {
+                /*
+                 * Since guessing network mask is probably futile we simply use 24,
+                 * as it matches our defaults. When non-default values are used
+                 * providing a proper netmask is up to the user.
+                 */
+                m_Prefix = 24;
+            }
+            inet_pton(AF_INET, pcszAddress, &(m_Address.sin_addr));
+            snprintf(m_szAddressAndMask, sizeof(m_szAddressAndMask), "%s/%d", pcszAddress, m_Prefix);
+            m_Broadcast.sin_addr.s_addr = computeBroadcast(m_Address.sin_addr.s_addr, m_Prefix);
+            inet_ntop(AF_INET, &(m_Broadcast.sin_addr), m_szBroadcast, sizeof(m_szBroadcast));
+        }
+    const char *getBroadcast() const { return m_szBroadcast; };
+    const char *getAddressAndMask() const { return m_szAddressAndMask; };
+private:
+    unsigned int maskToPrefix(const char *pcszNetmask);
+    unsigned long computeBroadcast(unsigned long ulAddress, unsigned int uPrefix);
+
+    unsigned int       m_Prefix;
+    struct sockaddr_in m_Address;
+    struct sockaddr_in m_Broadcast;
+    char m_szAddressAndMask[INET_ADDRSTRLEN + 3]; /* e.g. 192.168.56.101/24 */
+    char m_szBroadcast[INET_ADDRSTRLEN];
+};
+
+unsigned int AddressIPv4::maskToPrefix(const char *pcszNetmask)
+{
+    unsigned cBits = 0;
+    unsigned m[4];
+
+    if (sscanf(pcszNetmask, "%u.%u.%u.%u", &m[0], &m[1], &m[2], &m[3]) == 4)
+    {
+        for (int i = 0; i < 4 && m[i]; ++i)
+        {
+            int mask = m[i];
+            while (mask & 0x80)
+            {
+                cBits++;
+                mask <<= 1;
+            }
+        }
+    }
+    return cBits;
+}
+
+unsigned long AddressIPv4::computeBroadcast(unsigned long ulAddress, unsigned int uPrefix)
+{
+    /* Note: the address is big-endian. */
+    unsigned long ulNetworkMask = (1l << uPrefix) - 1;
+    return (ulAddress & ulNetworkMask) | ~ulNetworkMask;
+}
+
+
 /*
  * Linux-specific implementation of 'ip' command, as other platforms do not support it.
  */
 class CmdIpLinux : public AddressCommand
 {
 public:
-    CmdIpLinux() { pszBuffer = 0; m_pszPath = "/sbin/ip"; };
-    virtual ~CmdIpLinux() { delete pszBuffer; };
+    CmdIpLinux() { m_pszPath = "/sbin/ip"; };
     /**
      * IPv4 and IPv6 syntax is the same, so we override `remove` instead of implementing
      * family-specific commands. It would be easier to use the same body in both
@@ -272,11 +338,14 @@ public:
 protected:
     virtual int addV4(const char *pcszAdapter, const char *pcszAddress, const char *pcszNetmask = 0)
         {
-            return execute(CmdList("addr") << "add" << combine(pcszAddress, pcszNetmask) <<
-                           "dev" << pcszAdapter);
+            AddressIPv4 addr(pcszAddress, pcszNetmask);
+            bringUp(pcszAdapter);
+            return execute(CmdList("addr") << "add" << addr.getAddressAndMask() <<
+                           "broadcast" << addr.getBroadcast() << "dev" << pcszAdapter);
         };
     virtual int addV6(const char *pcszAdapter, const char *pcszAddress, const char *pcszNetmask = 0)
         {
+            bringUp(pcszAdapter);
             return execute(CmdList("addr") << "add" << pcszAddress << "dev" << pcszAdapter);
             NOREF(pcszNetmask);
         };
@@ -295,39 +364,11 @@ protected:
     virtual CmdList getShowCommand(const char *pcszAdapter) const
         { return CmdList("addr") << "show" << "dev" << pcszAdapter; };
 private:
-    /** Converts address and network mask into a single string in CIDR notation (like 192.168.1.1/24) */
-    const char *combine(const char *pcszAddress, const char *pcszNetmask);
-
-    char *pszBuffer;
+    /** Brings up the adapter */
+    void bringUp(const char *pcszAdapter)
+        { execute(CmdList("link") << "set" << "dev" << pcszAdapter << "up"); };
 };
-
-const char * CmdIpLinux::combine(const char *pcszAddress, const char *pcszNetmask)
-{
-    delete pszBuffer;
-    if (pcszNetmask)
-    {
-        unsigned cBits = 0;
-        unsigned m[4];
-        if (sscanf(pcszNetmask, "%u.%u.%u.%u", &m[0], &m[1], &m[2], &m[3]) == 4)
-        {
-            for (int i = 0; i < 4 && m[i]; ++i)
-            {
-                int mask = m[i];
-                while (mask & 0x80)
-                {
-                    cBits++;
-                    mask <<= 1;
-                }
-            }
-            const size_t cbBuf = strlen(pcszAddress) + 4;
-            pszBuffer = new char[cbBuf]; // '/xx\0'
-            snprintf(pszBuffer, cbBuf, "%s/%u", pcszAddress, cBits);
-            return pszBuffer;
-        }
-    }
-    return pcszAddress;
-}
-
+#endif /* RT_OS_LINUX */
 
 
 /*********************************************************************************************************************************
diff --git a/src/VBox/HostServices/SharedOpenGL/crserverlib/get_sizes.py b/src/VBox/HostServices/SharedOpenGL/crserverlib/get_sizes.py
old mode 100644
new mode 100755
diff --git a/src/VBox/HostServices/SharedOpenGL/crserverlib/server_dispatch.py b/src/VBox/HostServices/SharedOpenGL/crserverlib/server_dispatch.py
old mode 100644
new mode 100755
diff --git a/src/VBox/HostServices/SharedOpenGL/crserverlib/server_dispatch_header.py b/src/VBox/HostServices/SharedOpenGL/crserverlib/server_dispatch_header.py
old mode 100644
new mode 100755
diff --git a/src/VBox/HostServices/SharedOpenGL/crserverlib/server_get.py b/src/VBox/HostServices/SharedOpenGL/crserverlib/server_get.py
old mode 100644
new mode 100755
diff --git a/src/VBox/HostServices/SharedOpenGL/crserverlib/server_retval.py b/src/VBox/HostServices/SharedOpenGL/crserverlib/server_retval.py
old mode 100644
new mode 100755
diff --git a/src/VBox/HostServices/SharedOpenGL/crserverlib/server_simpleget.py b/src/VBox/HostServices/SharedOpenGL/crserverlib/server_simpleget.py
old mode 100644
new mode 100755
diff --git a/src/VBox/HostServices/SharedOpenGL/dlm/dlm_generated.py b/src/VBox/HostServices/SharedOpenGL/dlm/dlm_generated.py
old mode 100644
new mode 100755
diff --git a/src/VBox/HostServices/SharedOpenGL/unpacker/unpack.py b/src/VBox/HostServices/SharedOpenGL/unpacker/unpack.py
old mode 100644
new mode 100755
diff --git a/src/VBox/HostServices/SharedOpenGL/unpacker/unpack_extend.py b/src/VBox/HostServices/SharedOpenGL/unpacker/unpack_extend.py
old mode 100644
new mode 100755
diff --git a/src/VBox/HostServices/SharedOpenGL/unpacker/unpack_header.py b/src/VBox/HostServices/SharedOpenGL/unpacker/unpack_header.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Installer/linux/rpm/VirtualBox.tmpl.spec b/src/VBox/Installer/linux/rpm/VirtualBox.tmpl.spec
index f3dbc0c..93996d7 100644
--- a/src/VBox/Installer/linux/rpm/VirtualBox.tmpl.spec
+++ b/src/VBox/Installer/linux/rpm/VirtualBox.tmpl.spec
@@ -18,6 +18,7 @@
 %define %OSE% 1
 %define %PYTHON% 1
 %define VBOXDOCDIR %{_defaultdocdir}/%NAME%
+%global __requires_exclude_from ^/usr/lib/virtualbox/VBoxPython.*$
 %{!?python_sitelib: %define python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")}
 
 Summary:   Oracle VM VirtualBox
diff --git a/src/VBox/Installer/linux/rpm/rules b/src/VBox/Installer/linux/rpm/rules
index d5435b3..6159973 100755
--- a/src/VBox/Installer/linux/rpm/rules
+++ b/src/VBox/Installer/linux/rpm/rules
@@ -143,6 +143,7 @@ else
  doc_dir := VBOX_PATH_PACKAGE_DOCS="\"/usr/share/doc/packages/$(verpkg)\""
 endif
 
+# EL5 ships Python 2.4 while our Python support requires Python 2.6 or later
 cfg_flags := $(if $(NOQT),--disable-qt,) \
 	     $(if $(NOSDL),--disable-vboxsdl,) \
 	     $(if $(filter el5 el6,$(rpmrel)),--build-libvpx,) \
@@ -167,7 +168,6 @@ bld_flags := AUTOCFG=$(current)/rpm/AutoConfig.kmk \
 	     VBOX_DO_STRIP= \
 	     $(if $(filter el5,$(rpmrel)),VBOX_BLD_PYTHON=$(strip \
 		$(firstword $(wildcard /usr/local/bin/python2.7) $(wildcard /usr/bin/python))),) \
-	     VBOX_WITH_MULTIVERSION_PYTHON= \
 	     $(doc_dir) \
 	     $(if $(ose),,VBOX_WITH_DOCS_CHM=1) \
 	     VBOX_PACKAGE_DIST=$(rpmdist) \
diff --git a/src/VBox/Installer/win/InstallHelper/VBoxInstallHelper.cpp b/src/VBox/Installer/win/InstallHelper/VBoxInstallHelper.cpp
index 385467a..7516278 100644
--- a/src/VBox/Installer/win/InstallHelper/VBoxInstallHelper.cpp
+++ b/src/VBox/Installer/win/InstallHelper/VBoxInstallHelper.cpp
@@ -1051,24 +1051,23 @@ static UINT _createHostOnlyInterface(MSIHANDLE hModule, LPCWSTR pwszId, LPCWSTR
 
     if (SUCCEEDED(hr))
     {
-    //first, try to update Host Only Network Interface
+        //first, try to update Host Only Network Interface
         BOOL fRebootRequired = FALSE;
         hr = VBoxNetCfgWinUpdateHostOnlyNetworkInterface(pwszInfPath, &fRebootRequired, pwszId);
         if (SUCCEEDED(hr))
         {
             if (fRebootRequired)
             {
-                logStringW(hModule, L"UpdateHostOnlyInterfaces: Reboot required, setting REBOOT property to force");
+                logStringW(hModule, L"CreateHostOnlyInterface: Reboot required for update, setting REBOOT property to force");
                 HRESULT hr2 = MsiSetPropertyW(hModule, L"REBOOT", L"Force");
                 if (hr2 != ERROR_SUCCESS)
-                    logStringW(hModule, L"UpdateHostOnlyInterfaces: Failed to set REBOOT property, error = 0x%x", hr2);
+                    logStringW(hModule, L"CreateHostOnlyInterface: Failed to set REBOOT property for update, error = 0x%x", hr2);
             }
         }
         else
-            logStringW(hModule, L"UpdateHostOnlyInterfaces: VBoxNetCfgWinUpdateHostOnlyNetworkInterface failed, hr = 0x%x", hr);
-    //in fail case call CreateHostOnlyInterface
-        if (FAILED(hr))
         {
+            //in fail case call CreateHostOnlyInterface
+            logStringW(hModule, L"CreateHostOnlyInterface: VBoxNetCfgWinUpdateHostOnlyNetworkInterface failed, hr = 0x%x", hr);
             logStringW(hModule, L"CreateHostOnlyInterface: calling VBoxNetCfgWinCreateHostOnlyNetworkInterface");
 #ifdef VBOXNETCFG_DELAYEDRENAME
             BSTR devId;
diff --git a/src/VBox/Installer/win/VirtualBox.wxs b/src/VBox/Installer/win/VirtualBox.wxs
index e6b2300..8b2e572 100644
--- a/src/VBox/Installer/win/VirtualBox.wxs
+++ b/src/VBox/Installer/win/VirtualBox.wxs
@@ -465,11 +465,9 @@
     <?if $(env.VBOX_WITH_MSM_INSTALL) = "yes" ?>
                 <MergeRef Id="msm_VBoxNetworkAdp" />
                 <MergeRef Id="msm_VBoxNetworkAdp6" />
-                <MergeRef Id="msm_VBoxNetworkLwf" />
     <?else ?>
                 <ComponentRef Id="cp_NetAdpDriver" />
                 <ComponentRef Id="cp_NetAdp6Driver" />
-                <ComponentRef Id="cp_NetLwfDriver" />
     <?endif ?>
             </Feature>
 
diff --git a/src/VBox/Main/glue/com.cpp b/src/VBox/Main/glue/com.cpp
index b02e365..37c09e6 100644
--- a/src/VBox/Main/glue/com.cpp
+++ b/src/VBox/Main/glue/com.cpp
@@ -235,7 +235,7 @@ int GetVBoxUserHomeDirectory(char *aDir, size_t aDirLen, bool fCreateDir)
             vrc = RTEnvGetEx(RTENV_DEFAULT, "XDG_CONFIG_HOME", g_szXdgConfigHome, sizeof(g_szXdgConfigHome), NULL);
             if (RT_SUCCESS(vrc))
                 vrc = RTPathAppend(g_szXdgConfigHome, sizeof(g_szXdgConfigHome), "VirtualBox");
-            AssertMsg(vrc == VERR_ENV_VAR_NOT_FOUND, ("%Rrc\n", vrc));
+            AssertMsg(vrc == VINF_SUCCESS || vrc == VERR_ENV_VAR_NOT_FOUND, ("%Rrc\n", vrc));
             if (RT_FAILURE_NP(vrc))
                 vrc = RTStrCopy(g_szXdgConfigHome, sizeof(g_szXdgConfigHome), ".config/VirtualBox");
 #endif
diff --git a/src/VBox/Main/glue/constants-python.xsl b/src/VBox/Main/glue/constants-python.xsl
old mode 100644
new mode 100755
diff --git a/src/VBox/Main/glue/vboxapi.py b/src/VBox/Main/glue/vboxapi.py
old mode 100644
new mode 100755
diff --git a/src/VBox/Main/src-client/ConsoleImpl2.cpp b/src/VBox/Main/src-client/ConsoleImpl2.cpp
index 2d34211..bab8be7 100644
--- a/src/VBox/Main/src-client/ConsoleImpl2.cpp
+++ b/src/VBox/Main/src-client/ConsoleImpl2.cpp
@@ -4644,28 +4644,6 @@ int Console::i_configMediumProperties(PCFGMNODE pCur, IMedium *pMedium, bool *pf
 }
 
 
-#ifdef RT_OS_WINDOWS
-DECLINLINE(bool) IsNdis6(void)
-{
-    LogFlowFunc(("entry\n"));
-    HANDLE hFile = CreateFile(L"\\\\.\\VBoxNetLwf",
-                              0,
-                              FILE_SHARE_READ | FILE_SHARE_WRITE,
-                              NULL,
-                              OPEN_EXISTING,
-                              0,
-                              NULL);
-    bool fNdis6 = hFile != INVALID_HANDLE_VALUE;
-    if (fNdis6)
-        CloseHandle(hFile);
-    else
-        LogFunc(("CreateFile failed with 0x%x\n", GetLastError()));
-    LogFlowFunc(("return %s\n", fNdis6 ? "true" : "false"));
-    return fNdis6;
-}
-#endif /* RT_OS_WINDOWS */
-
-
 /**
  *  Construct the Network configuration tree
  *
@@ -5479,56 +5457,74 @@ int Console::i_configNetwork(const char *pszDevice,
                 }
 #  define VBOX_WIN_BINDNAME_PREFIX "\\DEVICE\\"
                 char szTrunkName[INTNET_MAX_TRUNK_NAME];
-                char *pszTrunkName = szTrunkName;
-                wchar_t * pswzBindName;
-                hrc = pAdaptorComponent->GetBindName(&pswzBindName);
+                bool fNdis6 = false;
+                wchar_t * pwszHelpText;
+                hrc = pAdaptorComponent->GetHelpText(&pwszHelpText);
                 Assert(hrc == S_OK);
                 if (hrc == S_OK)
                 {
-                    int cwBindName = (int)wcslen(pswzBindName) + 1;
-                    int cbFullBindNamePrefix = sizeof(VBOX_WIN_BINDNAME_PREFIX);
-                    if (sizeof(szTrunkName) > cbFullBindNamePrefix + cwBindName)
+                    Log(("help-text=%ls\n", pwszHelpText));
+                    if (!wcscmp(pwszHelpText, L"VirtualBox NDIS 6.0 Miniport Driver"))
+                        fNdis6 = true;
+                    CoTaskMemFree(pwszHelpText);
+                }
+                if (fNdis6)
+                {
+                    strncpy(szTrunkName, pszHostOnlyName, sizeof(szTrunkName) - 1);
+                    Log(("trunk=%s\n", szTrunkName));
+                }
+                else
+                {
+                    char *pszTrunkName = szTrunkName;
+                    wchar_t * pswzBindName;
+                    hrc = pAdaptorComponent->GetBindName(&pswzBindName);
+                    Assert(hrc == S_OK);
+                    if (hrc == S_OK)
                     {
-                        strcpy(szTrunkName, VBOX_WIN_BINDNAME_PREFIX);
-                        pszTrunkName += cbFullBindNamePrefix-1;
-                        if (!WideCharToMultiByte(CP_ACP, 0, pswzBindName, cwBindName, pszTrunkName,
-                                                sizeof(szTrunkName) - cbFullBindNamePrefix + 1, NULL, NULL))
+                        int cwBindName = (int)wcslen(pswzBindName) + 1;
+                        int cbFullBindNamePrefix = sizeof(VBOX_WIN_BINDNAME_PREFIX);
+                        if (sizeof(szTrunkName) > cbFullBindNamePrefix + cwBindName)
                         {
-                            DWORD err = GetLastError();
-                            hrc = HRESULT_FROM_WIN32(err);
-                            AssertLogRelMsgFailed(("NetworkAttachmentType_HostOnly: WideCharToMultiByte failed, hr=%Rhrc (0x%x) err=%u\n",
-                                                   hrc, hrc, err));
+                            strcpy(szTrunkName, VBOX_WIN_BINDNAME_PREFIX);
+                            pszTrunkName += cbFullBindNamePrefix-1;
+                            if (!WideCharToMultiByte(CP_ACP, 0, pswzBindName, cwBindName, pszTrunkName,
+                                                     sizeof(szTrunkName) - cbFullBindNamePrefix + 1, NULL, NULL))
+                            {
+                                DWORD err = GetLastError();
+                                hrc = HRESULT_FROM_WIN32(err);
+                                AssertLogRelMsgFailed(("NetworkAttachmentType_HostOnly: WideCharToMultiByte failed, hr=%Rhrc (0x%x) err=%u\n",
+                                                       hrc, hrc, err));
+                            }
+                        }
+                        else
+                        {
+                            AssertLogRelMsgFailed(("NetworkAttachmentType_HostOnly: insufficient szTrunkName buffer space\n"));
+                            /** @todo set appropriate error code */
+                            hrc = E_FAIL;
+                        }
+
+                        if (hrc != S_OK)
+                        {
+                            AssertFailed();
+                            CoTaskMemFree(pswzBindName);
+                            VBoxNetCfgWinReleaseINetCfg(pNc, FALSE /*fHasWriteLock*/);
+                            H();
                         }
                     }
                     else
                     {
-                        AssertLogRelMsgFailed(("NetworkAttachmentType_HostOnly: insufficient szTrunkName buffer space\n"));
-                        /** @todo set appropriate error code */
-                        hrc = E_FAIL;
-                    }
-
-                    if (hrc != S_OK)
-                    {
-                        AssertFailed();
-                        CoTaskMemFree(pswzBindName);
                         VBoxNetCfgWinReleaseINetCfg(pNc, FALSE /*fHasWriteLock*/);
+                        AssertLogRelMsgFailed(("NetworkAttachmentType_HostOnly: VBoxNetCfgWinGetComponentByGuid failed, hrc=%Rhrc (0x%x)\n",
+                                               hrc, hrc));
                         H();
                     }
-                }
-                else
-                {
-                    VBoxNetCfgWinReleaseINetCfg(pNc, FALSE /*fHasWriteLock*/);
-                    AssertLogRelMsgFailed(("NetworkAttachmentType_HostOnly: VBoxNetCfgWinGetComponentByGuid failed, hrc=%Rhrc (0x%x)\n",
-                                           hrc, hrc));
-                    H();
-                }
 
 
-                CoTaskMemFree(pswzBindName);
+                    CoTaskMemFree(pswzBindName);
+                }
 
-                /* The old NDIS5.1 version of driver uses TRUNKTYPE_NETADP */
-                trunkType = IsNdis6() ? TRUNKTYPE_NETFLT : TRUNKTYPE_NETADP;
-                InsertConfigInteger(pCfg, "TrunkType", trunkType == TRUNKTYPE_NETFLT ? kIntNetTrunkType_NetFlt : kIntNetTrunkType_NetAdp);
+                trunkType = TRUNKTYPE_NETADP;
+                InsertConfigInteger(pCfg, "TrunkType", kIntNetTrunkType_NetAdp);
 
                 pAdaptorComponent.setNull();
                 /* release the pNc finally */
diff --git a/src/VBox/Main/src-client/DrvAudioVRDE.cpp b/src/VBox/Main/src-client/DrvAudioVRDE.cpp
index d204405..05144d0 100644
--- a/src/VBox/Main/src-client/DrvAudioVRDE.cpp
+++ b/src/VBox/Main/src-client/DrvAudioVRDE.cpp
@@ -248,24 +248,33 @@ static DECLCALLBACK(int) drvAudioVRDEPlayOut(PPDMIHOSTAUDIO pInterface, PPDMAUDI
     PDMAUDIOSAMPLE aSamples[64];
     while (cSamplesPlayed)
     {
-        uint32_t cRead;
+        uint32_t cRead = 0;
         rc = AudioMixBufPeek(&pHstStrmOut->MixBuf, cSamplesToSend,
-                            aSamples, RT_ELEMENTS(aSamples), &cRead);
-        if (   RT_SUCCESS(rc)
-            && cRead)
+                            aSamples, RT_MIN(cSamplesPlayed, RT_ELEMENTS(aSamples)), &cRead);
+
+        if (RT_SUCCESS(rc))
         {
-            pDrv->pConsoleVRDPServer->SendAudioSamples(aSamples, cRead, format);
-            cReadTotal += cRead;
+            if (cRead)
+            {
+                pDrv->pConsoleVRDPServer->SendAudioSamples(aSamples, cRead, format);
+                cReadTotal += cRead;
+
+                Assert(cSamplesPlayed >= cRead);
+                cSamplesPlayed -= cRead;
+            }
+            else
+            {
+                if (rc == VINF_AUDIO_MORE_DATA_AVAILABLE) /* Do another peeking round if there is more data available. */
+                    continue;
+
+                break;
+            }
         }
-
-        if (RT_FAILURE(rc))
+        else
             break;
-
-        Assert(cSamplesPlayed >= cRead);
-        cSamplesPlayed -= cRead;
     }
 
-    AudioMixBufFinish(&pHstStrmOut->MixBuf, cSamplesToSend);
+    AudioMixBufFinish(&pHstStrmOut->MixBuf, cReadTotal);
 
     /*
      * Always report back all samples acquired, regardless of whether the
diff --git a/src/VBox/Main/src-server/SnapshotImpl.cpp b/src/VBox/Main/src-server/SnapshotImpl.cpp
index b8d2c0f..97aecc7 100644
--- a/src/VBox/Main/src-server/SnapshotImpl.cpp
+++ b/src/VBox/Main/src-server/SnapshotImpl.cpp
@@ -330,7 +330,7 @@ HRESULT Snapshot::setName(const com::Utf8Str &aName)
     Guid test(aName);
 
     if (!test.isZero() && test.isValid())
-        return setError(E_INVALIDARG,  tr("A machine cannot have a UUID as its name"));
+        return setError(E_INVALIDARG, tr("A machine cannot have a UUID as its name"));
 
     AutoWriteLock alock(this COMMA_LOCKVAL_SRC_POS);
 
@@ -2886,7 +2886,7 @@ void SessionMachine::i_deleteSnapshotHandler(DeleteSnapshotTask &task)
                     if (RT_FAILURE(vrc))
                     {
                         rc = setError(E_FAIL,
-                                      tr(" Unable to merge storage '%s'. Can't get storage UID "),
+                                      tr("Unable to merge storage '%s'. Can't get storage UID"),
                                       pTarget_local->i_getLocationFull().c_str());
                         throw rc;
                     }
@@ -2921,10 +2921,10 @@ void SessionMachine::i_deleteSnapshotHandler(DeleteSnapshotTask &task)
                 /* get info about a storage */
                 if (it_sm == serialMapToStoragePath.end())
                 {
-                    LogFlowThisFunc((" Path to the storage wasn't found...\n "));
+                    LogFlowThisFunc(("Path to the storage wasn't found...\n"));
 
                     rc = setError(E_INVALIDARG,
-                                  tr(" Unable to merge storage '%s'. Path to the storage wasn't found. "),
+                                  tr("Unable to merge storage '%s'. Path to the storage wasn't found"),
                                   it_sm->second);
                     throw rc;
                 }
@@ -2933,17 +2933,17 @@ void SessionMachine::i_deleteSnapshotHandler(DeleteSnapshotTask &task)
                 if (RT_FAILURE(vrc))
                 {
                     rc = setError(E_FAIL,
-                                  tr(" Unable to merge storage '%s'. Can't get the storage size. "),
+                                  tr("Unable to merge storage '%s'. Can't get the storage size"),
                                   it_sm->second);
                     throw rc;
                 }
 
                 if (commonSourceStoragesSize > (uint64_t)pcbFree)
                 {
-                    LogFlowThisFunc((" Not enough free space to merge...\n "));
+                    LogFlowThisFunc(("Not enough free space to merge...\n"));
 
                     rc = setError(E_OUTOFMEMORY,
-                                  tr(" Unable to merge storage '%s' - not enough free storage space. "),
+                                  tr("Unable to merge storage '%s'. Not enough free storage space"),
                                   it_sm->second);
                     throw rc;
                 }
diff --git a/src/VBox/Main/src-server/USBIdDatabaseGenerator.cpp b/src/VBox/Main/src-server/USBIdDatabaseGenerator.cpp
index 0f8a85a..1767beb 100644
--- a/src/VBox/Main/src-server/USBIdDatabaseGenerator.cpp
+++ b/src/VBox/Main/src-server/USBIdDatabaseGenerator.cpp
@@ -1,4 +1,4 @@
-/* $Id: USBIdDatabaseGenerator.cpp $ */
+/* $Id: USBIdDatabaseGenerator.cpp 105633 2016-02-20 16:51:52Z fmehnert $ */
 /** @file
  * USB device vendor and product ID database - generator.
  */
diff --git a/src/VBox/Main/xml/Settings.cpp b/src/VBox/Main/xml/Settings.cpp
index 00c728c..6e80406 100644
--- a/src/VBox/Main/xml/Settings.cpp
+++ b/src/VBox/Main/xml/Settings.cpp
@@ -787,19 +787,26 @@ void ConfigFileBase::readMediumOne(MediaType t,
         if (!elmMedium.getAttributeValue("location", med.strLocation))
             throw ConfigFileError(this, &elmMedium, N_("Required %s/@location attribute is missing"), elmMedium.getName());
 
-    elmMedium.getAttributeValue("Description", med.strDescription);       // optional
+    // 3.2 builds added Description as an attribute, read it silently
+    // and write it back as an element starting with 5.1.26
+    elmMedium.getAttributeValue("Description", med.strDescription);
 
-    // handle medium properties
-    xml::NodesLoop nl2(elmMedium, "Property");
-    const xml::ElementNode *pelmHDChild;
-    while ((pelmHDChild = nl2.forAllNodes()))
+    xml::NodesLoop nlMediumChildren(elmMedium);
+    const xml::ElementNode *pelmMediumChild;
+    while ((pelmMediumChild = nlMediumChildren.forAllNodes()))
     {
-        Utf8Str strPropName, strPropValue;
-        if (   pelmHDChild->getAttributeValue("name", strPropName)
-            && pelmHDChild->getAttributeValue("value", strPropValue) )
-            med.properties[strPropName] = strPropValue;
-        else
-            throw ConfigFileError(this, pelmHDChild, N_("Required HardDisk/Property/@name or @value attribute is missing"));
+        if (pelmMediumChild->nameEquals("Description"))
+            med.strDescription = pelmMediumChild->getValue();
+        else if (pelmMediumChild->nameEquals("Property"))
+        {
+            // handle medium properties
+            Utf8Str strPropName, strPropValue;
+            if (   pelmMediumChild->getAttributeValue("name", strPropName)
+                && pelmMediumChild->getAttributeValue("value", strPropValue) )
+                med.properties[strPropName] = strPropValue;
+            else
+                throw ConfigFileError(this, pelmMediumChild, N_("Required HardDisk/Property/@name or @value attribute is missing"));
+        }
     }
 }
 
@@ -1216,7 +1223,7 @@ void ConfigFileBase::buildMedium(MediaType t,
         && mdm.fAutoReset)
         pelmMedium->setAttribute("autoReset", mdm.fAutoReset);
     if (mdm.strDescription.length())
-        pelmMedium->setAttribute("Description", mdm.strDescription);
+        pelmMedium->createChild("Description")->addContent(mdm.strDescription);
 
     for (StringsMap::const_iterator it = mdm.properties.begin();
          it != mdm.properties.end();
@@ -4906,7 +4913,8 @@ bool MachineConfigFile::readSnapshot(const Guid &curSnapshotUuid,
     if (!elmSnapshot.getAttributeValue("name", snap.strName))
         throw ConfigFileError(this, &elmSnapshot, N_("Required Snapshot/@name attribute is missing"));
 
-    // earlier 3.1 trunk builds had a bug and added Description as an attribute, read it silently and write it back as an element
+    // 3.1 dev builds added Description as an attribute, read it silently
+    // and write it back as an element
     elmSnapshot.getAttributeValue("Description", snap.strDescription);
 
     if (!elmSnapshot.getAttributeValue("timeStamp", strTemp))
diff --git a/src/VBox/Runtime/VBox/log-vbox.cpp b/src/VBox/Runtime/VBox/log-vbox.cpp
index 5537276..207889c 100644
--- a/src/VBox/Runtime/VBox/log-vbox.cpp
+++ b/src/VBox/Runtime/VBox/log-vbox.cpp
@@ -747,8 +747,7 @@ RTDECL(PRTLOGGER) RTLogDefaultInit(void)
         pLogger->fDestFlags |= RTLOGDEST_DEBUGGER;
 # endif
 # if defined(DEBUG_aleksey)  /* Guest ring-0 as well */
-        //RTLogGroupSettings(pLogger, "net_flt_drv.e.l.f.l3.l4.l5 +net_adp_drv.e.l.f.l3.l4.l5");
-        RTLogGroupSettings(pLogger, "net_flt_drv.e.l.f.l3.l4.l5.l6");
+        RTLogGroupSettings(pLogger, "net_flt_drv.e.l.f.l3.l4.l5 +net_adp_drv.e.l.f.l3.l4.l5.l6");
         RTLogFlags(pLogger, "enabled unbuffered");
         pLogger->fDestFlags |= RTLOGDEST_DEBUGGER | RTLOGDEST_STDOUT;
 # endif
diff --git a/src/VBox/VMM/VMMAll/TMAllCpu.cpp b/src/VBox/VMM/VMMAll/TMAllCpu.cpp
index 20688c3..9cc9a13 100644
--- a/src/VBox/VMM/VMMAll/TMAllCpu.cpp
+++ b/src/VBox/VMM/VMMAll/TMAllCpu.cpp
@@ -48,9 +48,7 @@ DECLINLINE(uint64_t) tmCpuTickGetRawVirtual(PVM pVM, bool fCheckTimers)
         u64 = TMVirtualSyncGet(pVM);
     else
         u64 = TMVirtualSyncGetNoCheck(pVM);
-    if (u64 != TMCLOCK_FREQ_VIRTUAL) /* what's the use of this test, document! */
-        u64 = ASMMultU64ByU32DivByU32(u64, pVM->tm.s.cTSCTicksPerSecond, TMCLOCK_FREQ_VIRTUAL);
-    return u64;
+    return ASMMultU64ByU32DivByU32(u64, pVM->tm.s.cTSCTicksPerSecond, TMCLOCK_FREQ_VIRTUAL);
 }
 
 
@@ -384,9 +382,7 @@ VMM_INT_DECL(uint64_t) TMCpuTickGetDeadlineAndTscOffset(PVM pVM, PVMCPU pVCpu, u
         /* The source is the timer synchronous virtual clock. */
         uint64_t cNsToDeadline;
         uint64_t u64NowVirtSync = TMVirtualSyncGetWithDeadlineNoCheck(pVM, &cNsToDeadline);
-        uint64_t u64Now = u64NowVirtSync != TMCLOCK_FREQ_VIRTUAL /* what's the use of this? */
-                        ? ASMMultU64ByU32DivByU32(u64NowVirtSync, pVM->tm.s.cTSCTicksPerSecond, TMCLOCK_FREQ_VIRTUAL)
-                        : u64NowVirtSync;
+        uint64_t u64Now = ASMMultU64ByU32DivByU32(u64NowVirtSync, pVM->tm.s.cTSCTicksPerSecond, TMCLOCK_FREQ_VIRTUAL);
         u64Now -= pVCpu->tm.s.offTSCRawSrc;
         *poffRealTsc     = u64Now - ASMReadTSC();
         *pfOffsettedTsc  = u64Now >= pVCpu->tm.s.u64TSCLastSeen;
diff --git a/src/VBox/VMM/VMMR3/TM.cpp b/src/VBox/VMM/VMMR3/TM.cpp
index 4857e17..750918e 100644
--- a/src/VBox/VMM/VMMR3/TM.cpp
+++ b/src/VBox/VMM/VMMR3/TM.cpp
@@ -1177,6 +1177,27 @@ VMM_INT_DECL(void) TMR3Reset(PVM pVM)
     Assert(!GIMIsParavirtTscEnabled(pVM));
     pVM->tm.s.fParavirtTscEnabled = false;
 
+    /*
+     * Reset TSC to avoid a Windows 8+ bug (see @bugref{8926}). If Windows
+     * sees TSC value beyond 0x40000000000 at startup, it will reset the
+     * TSC on boot-up CPU only, causing confusion and mayhem with SMP.
+     */
+    VM_ASSERT_EMT0(pVM);
+    uint64_t offTscRawSrc;
+    if (pVM->tm.s.enmTSCMode == TMTSCMODE_REAL_TSC_OFFSET)
+        offTscRawSrc = SUPReadTsc();
+    else
+    {
+        offTscRawSrc = TMVirtualSyncGetNoCheck(pVM);
+        offTscRawSrc = ASMMultU64ByU32DivByU32(offTscRawSrc, pVM->tm.s.cTSCTicksPerSecond, TMCLOCK_FREQ_VIRTUAL);
+    }
+    for (VMCPUID iCpu = 0; iCpu < pVM->cCpus; iCpu++)
+    {
+        pVM->aCpus[iCpu].tm.s.offTSCRawSrc   = offTscRawSrc;
+        pVM->aCpus[iCpu].tm.s.u64TSC         = 0;
+        pVM->aCpus[iCpu].tm.s.u64TSCLastSeen = 0;
+    }
+
     TM_UNLOCK_TIMERS(pVM);
 }
 
diff --git a/src/VBox/ValidationKit/common/__init__.py b/src/VBox/ValidationKit/common/__init__.py
old mode 100644
new mode 100755
diff --git a/src/VBox/ValidationKit/common/constants/__init__.py b/src/VBox/ValidationKit/common/constants/__init__.py
old mode 100644
new mode 100755
diff --git a/src/VBox/ValidationKit/common/utils.py b/src/VBox/ValidationKit/common/utils.py
old mode 100644
new mode 100755
diff --git a/src/VBox/ValidationKit/common/webutils.py b/src/VBox/ValidationKit/common/webutils.py
old mode 100644
new mode 100755
diff --git a/src/VBox/ValidationKit/testanalysis/diff.py b/src/VBox/ValidationKit/testanalysis/diff.py
old mode 100644
new mode 100755
diff --git a/src/VBox/ValidationKit/testanalysis/reader.py b/src/VBox/ValidationKit/testanalysis/reader.py
old mode 100644
new mode 100755
diff --git a/src/VBox/ValidationKit/testanalysis/reporting.py b/src/VBox/ValidationKit/testanalysis/reporting.py
old mode 100644
new mode 100755
diff --git a/src/VBox/ValidationKit/testboxscript/testboxcommand.py b/src/VBox/ValidationKit/testboxscript/testboxcommand.py
old mode 100644
new mode 100755
diff --git a/src/VBox/ValidationKit/testboxscript/testboxcommons.py b/src/VBox/ValidationKit/testboxscript/testboxcommons.py
old mode 100644
new mode 100755
diff --git a/src/VBox/ValidationKit/testboxscript/testboxconnection.py b/src/VBox/ValidationKit/testboxscript/testboxconnection.py
old mode 100644
new mode 100755
diff --git a/src/VBox/ValidationKit/testboxscript/testboxtasks.py b/src/VBox/ValidationKit/testboxscript/testboxtasks.py
old mode 100644
new mode 100755
diff --git a/src/VBox/ValidationKit/testboxscript/testboxupgrade.py b/src/VBox/ValidationKit/testboxscript/testboxupgrade.py
old mode 100644
new mode 100755
diff --git a/src/VBox/ValidationKit/testdriver/base.py b/src/VBox/ValidationKit/testdriver/base.py
old mode 100644
new mode 100755
diff --git a/src/VBox/ValidationKit/testdriver/reporter.py b/src/VBox/ValidationKit/testdriver/reporter.py
old mode 100644
new mode 100755
diff --git a/src/VBox/ValidationKit/testdriver/tst-txsclient.py b/src/VBox/ValidationKit/testdriver/tst-txsclient.py
old mode 100644
new mode 100755
diff --git a/src/VBox/ValidationKit/testdriver/txsclient.py b/src/VBox/ValidationKit/testdriver/txsclient.py
old mode 100644
new mode 100755
diff --git a/src/VBox/ValidationKit/testdriver/vbox.py b/src/VBox/ValidationKit/testdriver/vbox.py
old mode 100644
new mode 100755
diff --git a/src/VBox/ValidationKit/testdriver/vboxcon.py b/src/VBox/ValidationKit/testdriver/vboxcon.py
old mode 100644
new mode 100755
diff --git a/src/VBox/ValidationKit/testdriver/vboxtestvms.py b/src/VBox/ValidationKit/testdriver/vboxtestvms.py
old mode 100644
new mode 100755
diff --git a/src/VBox/ValidationKit/testdriver/vboxwrappers.py b/src/VBox/ValidationKit/testdriver/vboxwrappers.py
old mode 100644
new mode 100755
diff --git a/src/VBox/ValidationKit/testdriver/winbase.py b/src/VBox/ValidationKit/testdriver/winbase.py
old mode 100644
new mode 100755
diff --git a/src/VBox/ValidationKit/testmanager/core/base.py b/src/VBox/ValidationKit/testmanager/core/base.py
old mode 100644
new mode 100755
diff --git a/src/VBox/ValidationKit/testmanager/core/build.py b/src/VBox/ValidationKit/testmanager/core/build.py
old mode 100644
new mode 100755
diff --git a/src/VBox/ValidationKit/testmanager/core/buildblacklist.py b/src/VBox/ValidationKit/testmanager/core/buildblacklist.py
old mode 100644
new mode 100755
diff --git a/src/VBox/ValidationKit/testmanager/core/buildsource.py b/src/VBox/ValidationKit/testmanager/core/buildsource.py
old mode 100644
new mode 100755
diff --git a/src/VBox/ValidationKit/testmanager/core/db.py b/src/VBox/ValidationKit/testmanager/core/db.py
old mode 100644
new mode 100755
diff --git a/src/VBox/ValidationKit/testmanager/core/dbobjcache.py b/src/VBox/ValidationKit/testmanager/core/dbobjcache.py
old mode 100644
new mode 100755
diff --git a/src/VBox/ValidationKit/testmanager/core/failurecategory.py b/src/VBox/ValidationKit/testmanager/core/failurecategory.py
old mode 100644
new mode 100755
diff --git a/src/VBox/ValidationKit/testmanager/core/failurereason.py b/src/VBox/ValidationKit/testmanager/core/failurereason.py
old mode 100644
new mode 100755
diff --git a/src/VBox/ValidationKit/testmanager/core/globalresource.py b/src/VBox/ValidationKit/testmanager/core/globalresource.py
old mode 100644
new mode 100755
diff --git a/src/VBox/ValidationKit/testmanager/core/report.py b/src/VBox/ValidationKit/testmanager/core/report.py
old mode 100644
new mode 100755
diff --git a/src/VBox/ValidationKit/testmanager/core/schedgroup.py b/src/VBox/ValidationKit/testmanager/core/schedgroup.py
old mode 100644
new mode 100755
diff --git a/src/VBox/ValidationKit/testmanager/core/schedulerbase.py b/src/VBox/ValidationKit/testmanager/core/schedulerbase.py
old mode 100644
new mode 100755
diff --git a/src/VBox/ValidationKit/testmanager/core/schedulerbeci.py b/src/VBox/ValidationKit/testmanager/core/schedulerbeci.py
old mode 100644
new mode 100755
diff --git a/src/VBox/ValidationKit/testmanager/core/systemlog.py b/src/VBox/ValidationKit/testmanager/core/systemlog.py
old mode 100644
new mode 100755
diff --git a/src/VBox/ValidationKit/testmanager/core/testbox.py b/src/VBox/ValidationKit/testmanager/core/testbox.py
old mode 100644
new mode 100755
diff --git a/src/VBox/ValidationKit/testmanager/core/testboxcontroller.py b/src/VBox/ValidationKit/testmanager/core/testboxcontroller.py
old mode 100644
new mode 100755
diff --git a/src/VBox/ValidationKit/testmanager/core/testboxstatus.py b/src/VBox/ValidationKit/testmanager/core/testboxstatus.py
old mode 100644
new mode 100755
diff --git a/src/VBox/ValidationKit/testmanager/core/testcase.py b/src/VBox/ValidationKit/testmanager/core/testcase.py
old mode 100644
new mode 100755
diff --git a/src/VBox/ValidationKit/testmanager/core/testcaseargs.py b/src/VBox/ValidationKit/testmanager/core/testcaseargs.py
old mode 100644
new mode 100755
diff --git a/src/VBox/ValidationKit/testmanager/core/testgroup.py b/src/VBox/ValidationKit/testmanager/core/testgroup.py
old mode 100644
new mode 100755
diff --git a/src/VBox/ValidationKit/testmanager/core/testresultfailures.py b/src/VBox/ValidationKit/testmanager/core/testresultfailures.py
old mode 100644
new mode 100755
diff --git a/src/VBox/ValidationKit/testmanager/core/testresults.py b/src/VBox/ValidationKit/testmanager/core/testresults.py
old mode 100644
new mode 100755
diff --git a/src/VBox/ValidationKit/testmanager/core/testset.py b/src/VBox/ValidationKit/testmanager/core/testset.py
old mode 100644
new mode 100755
diff --git a/src/VBox/ValidationKit/testmanager/core/useraccount.py b/src/VBox/ValidationKit/testmanager/core/useraccount.py
old mode 100644
new mode 100755
diff --git a/src/VBox/ValidationKit/testmanager/core/vcsrevisions.py b/src/VBox/ValidationKit/testmanager/core/vcsrevisions.py
old mode 100644
new mode 100755
diff --git a/src/VBox/ValidationKit/testmanager/core/webservergluebase.py b/src/VBox/ValidationKit/testmanager/core/webservergluebase.py
old mode 100644
new mode 100755
diff --git a/src/VBox/ValidationKit/testmanager/core/webservergluecgi.py b/src/VBox/ValidationKit/testmanager/core/webservergluecgi.py
old mode 100644
new mode 100755
diff --git a/src/VBox/ValidationKit/testmanager/webui/wuiadmin.py b/src/VBox/ValidationKit/testmanager/webui/wuiadmin.py
old mode 100644
new mode 100755
diff --git a/src/VBox/ValidationKit/testmanager/webui/wuiadminbuild.py b/src/VBox/ValidationKit/testmanager/webui/wuiadminbuild.py
old mode 100644
new mode 100755
diff --git a/src/VBox/ValidationKit/testmanager/webui/wuiadminbuildblacklist.py b/src/VBox/ValidationKit/testmanager/webui/wuiadminbuildblacklist.py
old mode 100644
new mode 100755
diff --git a/src/VBox/ValidationKit/testmanager/webui/wuiadminbuildcategory.py b/src/VBox/ValidationKit/testmanager/webui/wuiadminbuildcategory.py
old mode 100644
new mode 100755
diff --git a/src/VBox/ValidationKit/testmanager/webui/wuiadminbuildsource.py b/src/VBox/ValidationKit/testmanager/webui/wuiadminbuildsource.py
old mode 100644
new mode 100755
diff --git a/src/VBox/ValidationKit/testmanager/webui/wuiadminfailurecategory.py b/src/VBox/ValidationKit/testmanager/webui/wuiadminfailurecategory.py
old mode 100644
new mode 100755
diff --git a/src/VBox/ValidationKit/testmanager/webui/wuiadminfailurereason.py b/src/VBox/ValidationKit/testmanager/webui/wuiadminfailurereason.py
old mode 100644
new mode 100755
diff --git a/src/VBox/ValidationKit/testmanager/webui/wuiadminglobalrsrc.py b/src/VBox/ValidationKit/testmanager/webui/wuiadminglobalrsrc.py
old mode 100644
new mode 100755
diff --git a/src/VBox/ValidationKit/testmanager/webui/wuiadminschedgroup.py b/src/VBox/ValidationKit/testmanager/webui/wuiadminschedgroup.py
old mode 100644
new mode 100755
diff --git a/src/VBox/ValidationKit/testmanager/webui/wuiadminsystemlog.py b/src/VBox/ValidationKit/testmanager/webui/wuiadminsystemlog.py
old mode 100644
new mode 100755
diff --git a/src/VBox/ValidationKit/testmanager/webui/wuiadmintestbox.py b/src/VBox/ValidationKit/testmanager/webui/wuiadmintestbox.py
old mode 100644
new mode 100755
diff --git a/src/VBox/ValidationKit/testmanager/webui/wuiadmintestcase.py b/src/VBox/ValidationKit/testmanager/webui/wuiadmintestcase.py
old mode 100644
new mode 100755
diff --git a/src/VBox/ValidationKit/testmanager/webui/wuiadmintestgroup.py b/src/VBox/ValidationKit/testmanager/webui/wuiadmintestgroup.py
old mode 100644
new mode 100755
diff --git a/src/VBox/ValidationKit/testmanager/webui/wuiadminuseraccount.py b/src/VBox/ValidationKit/testmanager/webui/wuiadminuseraccount.py
old mode 100644
new mode 100755
diff --git a/src/VBox/ValidationKit/testmanager/webui/wuibase.py b/src/VBox/ValidationKit/testmanager/webui/wuibase.py
old mode 100644
new mode 100755
diff --git a/src/VBox/ValidationKit/testmanager/webui/wuicontentbase.py b/src/VBox/ValidationKit/testmanager/webui/wuicontentbase.py
old mode 100644
new mode 100755
diff --git a/src/VBox/ValidationKit/testmanager/webui/wuigraphwiz.py b/src/VBox/ValidationKit/testmanager/webui/wuigraphwiz.py
old mode 100644
new mode 100755
diff --git a/src/VBox/ValidationKit/testmanager/webui/wuihlpform.py b/src/VBox/ValidationKit/testmanager/webui/wuihlpform.py
old mode 100644
new mode 100755
diff --git a/src/VBox/ValidationKit/testmanager/webui/wuihlpgraph.py b/src/VBox/ValidationKit/testmanager/webui/wuihlpgraph.py
old mode 100644
new mode 100755
diff --git a/src/VBox/ValidationKit/testmanager/webui/wuihlpgraphbase.py b/src/VBox/ValidationKit/testmanager/webui/wuihlpgraphbase.py
old mode 100644
new mode 100755
diff --git a/src/VBox/ValidationKit/testmanager/webui/wuihlpgraphgooglechart.py b/src/VBox/ValidationKit/testmanager/webui/wuihlpgraphgooglechart.py
old mode 100644
new mode 100755
diff --git a/src/VBox/ValidationKit/testmanager/webui/wuihlpgraphmatplotlib.py b/src/VBox/ValidationKit/testmanager/webui/wuihlpgraphmatplotlib.py
old mode 100644
new mode 100755
diff --git a/src/VBox/ValidationKit/testmanager/webui/wuihlpgraphsimple.py b/src/VBox/ValidationKit/testmanager/webui/wuihlpgraphsimple.py
old mode 100644
new mode 100755
diff --git a/src/VBox/ValidationKit/testmanager/webui/wuilogviewer.py b/src/VBox/ValidationKit/testmanager/webui/wuilogviewer.py
old mode 100644
new mode 100755
diff --git a/src/VBox/ValidationKit/testmanager/webui/wuimain.py b/src/VBox/ValidationKit/testmanager/webui/wuimain.py
old mode 100644
new mode 100755
diff --git a/src/VBox/ValidationKit/testmanager/webui/wuireport.py b/src/VBox/ValidationKit/testmanager/webui/wuireport.py
old mode 100644
new mode 100755
diff --git a/src/VBox/ValidationKit/testmanager/webui/wuitestresult.py b/src/VBox/ValidationKit/testmanager/webui/wuitestresult.py
old mode 100644
new mode 100755
diff --git a/src/VBox/ValidationKit/testmanager/webui/wuitestresultfailure.py b/src/VBox/ValidationKit/testmanager/webui/wuitestresultfailure.py
old mode 100644
new mode 100755
diff --git a/src/VBox/ValidationKit/testmanager/webui/wuivcshistory.py b/src/VBox/ValidationKit/testmanager/webui/wuivcshistory.py
old mode 100644
new mode 100755
diff --git a/src/VBox/ValidationKit/tests/storage/remoteexecutor.py b/src/VBox/ValidationKit/tests/storage/remoteexecutor.py
old mode 100644
new mode 100755
diff --git a/src/VBox/ValidationKit/tests/storage/storagecfg.py b/src/VBox/ValidationKit/tests/storage/storagecfg.py
old mode 100644
new mode 100755
diff --git a/src/VBox/ValidationKit/tests/usb/tst-utsgadget.py b/src/VBox/ValidationKit/tests/usb/tst-utsgadget.py
old mode 100644
new mode 100755
diff --git a/src/VBox/ValidationKit/tests/usb/usbgadget.py b/src/VBox/ValidationKit/tests/usb/usbgadget.py
old mode 100644
new mode 100755
diff --git a/src/libs/xpcom18a4/nsprpub/Makefile.in b/src/libs/xpcom18a4/nsprpub/Makefile.in
old mode 100755
new mode 100644
diff --git a/src/libs/xpcom18a4/nsprpub/config/config.mk b/src/libs/xpcom18a4/nsprpub/config/config.mk
old mode 100755
new mode 100644
diff --git a/src/libs/xpcom18a4/nsprpub/config/rules.mk b/src/libs/xpcom18a4/nsprpub/config/rules.mk
old mode 100755
new mode 100644
diff --git a/src/libs/xpcom18a4/python/__init__.py b/src/libs/xpcom18a4/python/__init__.py
old mode 100644
new mode 100755
diff --git a/src/libs/xpcom18a4/python/client/__init__.py b/src/libs/xpcom18a4/python/client/__init__.py
old mode 100644
new mode 100755
diff --git a/src/libs/xpcom18a4/python/components.py b/src/libs/xpcom18a4/python/components.py
old mode 100644
new mode 100755
diff --git a/src/libs/xpcom18a4/python/file.py b/src/libs/xpcom18a4/python/file.py
old mode 100644
new mode 100755
diff --git a/src/libs/xpcom18a4/python/nsError.py b/src/libs/xpcom18a4/python/nsError.py
old mode 100644
new mode 100755
diff --git a/src/libs/xpcom18a4/python/primitives.py b/src/libs/xpcom18a4/python/primitives.py
old mode 100644
new mode 100755
diff --git a/src/libs/xpcom18a4/python/server/__init__.py b/src/libs/xpcom18a4/python/server/__init__.py
old mode 100644
new mode 100755
diff --git a/src/libs/xpcom18a4/python/server/enumerator.py b/src/libs/xpcom18a4/python/server/enumerator.py
old mode 100644
new mode 100755
diff --git a/src/libs/xpcom18a4/python/server/factory.py b/src/libs/xpcom18a4/python/server/factory.py
old mode 100644
new mode 100755
diff --git a/src/libs/xpcom18a4/python/server/loader.py b/src/libs/xpcom18a4/python/server/loader.py
old mode 100644
new mode 100755
diff --git a/src/libs/xpcom18a4/python/server/module.py b/src/libs/xpcom18a4/python/server/module.py
old mode 100644
new mode 100755
diff --git a/src/libs/xpcom18a4/python/server/policy.py b/src/libs/xpcom18a4/python/server/policy.py
old mode 100644
new mode 100755
diff --git a/src/libs/xpcom18a4/python/test/pyxpcom_test_tools.py b/src/libs/xpcom18a4/python/test/pyxpcom_test_tools.py
old mode 100644
new mode 100755
diff --git a/src/libs/xpcom18a4/python/test/test_com_exceptions.py b/src/libs/xpcom18a4/python/test/test_com_exceptions.py
old mode 100644
new mode 100755
diff --git a/src/libs/xpcom18a4/python/test/test_comfile.py b/src/libs/xpcom18a4/python/test/test_comfile.py
old mode 100644
new mode 100755
diff --git a/src/libs/xpcom18a4/python/test/test_component/py_test_component.py b/src/libs/xpcom18a4/python/test/test_component/py_test_component.py
old mode 100644
new mode 100755
diff --git a/src/libs/xpcom18a4/python/test/test_components.py b/src/libs/xpcom18a4/python/test/test_components.py
old mode 100644
new mode 100755
diff --git a/src/libs/xpcom18a4/python/test/test_isupports_primitives.py b/src/libs/xpcom18a4/python/test/test_isupports_primitives.py
old mode 100644
new mode 100755
diff --git a/src/libs/xpcom18a4/python/test/test_misc.py b/src/libs/xpcom18a4/python/test/test_misc.py
old mode 100644
new mode 100755
diff --git a/src/libs/xpcom18a4/python/test/test_streams.py b/src/libs/xpcom18a4/python/test/test_streams.py
old mode 100644
new mode 100755
diff --git a/src/libs/xpcom18a4/python/test/test_test_component.py b/src/libs/xpcom18a4/python/test/test_test_component.py
old mode 100644
new mode 100755
diff --git a/src/libs/xpcom18a4/python/test/test_weakreferences.py b/src/libs/xpcom18a4/python/test/test_weakreferences.py
old mode 100644
new mode 100755
diff --git a/src/libs/xpcom18a4/python/tools/regxpcom.py b/src/libs/xpcom18a4/python/tools/regxpcom.py
old mode 100644
new mode 100755
diff --git a/src/libs/xpcom18a4/python/tools/tracer_demo.py b/src/libs/xpcom18a4/python/tools/tracer_demo.py
old mode 100644
new mode 100755
diff --git a/src/libs/xpcom18a4/python/vboxxpcom.py b/src/libs/xpcom18a4/python/vboxxpcom.py
index ece18e0..5d4e032 100755
--- a/src/libs/xpcom18a4/python/vboxxpcom.py
+++ b/src/libs/xpcom18a4/python/vboxxpcom.py
@@ -39,7 +39,7 @@ _asVBoxPythons = [
 if sys.hexversion >= 0x030200f0 and sys.abiflags:
     _asNew = []
     for sCandidate in _asVBoxPythons:
-        if isdigit(sCandidate[-1:]):
+        if sCandidate[-1:].isdigit():
             _asNew.append(sCandidate + sys.abiflags)
         else:
             _asNew.append(sCandidate)
diff --git a/src/libs/xpcom18a4/python/xpt.py b/src/libs/xpcom18a4/python/xpt.py
old mode 100644
new mode 100755

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-virtualbox/virtualbox.git



More information about the Pkg-virtualbox-commits mailing list