Index: /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsSystem.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsSystem.cpp	(revision 79963)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsSystem.cpp	(revision 79964)
@@ -272,4 +272,5 @@
     /* Load old 'Motherboard' data from the cache: */
     m_pSliderMemorySize->setValue(oldSystemData.m_iMemorySize);
+    mTwBootOrder->setBootItems(oldSystemData.m_bootItems);
     const int iChipsetTypePosition = m_pComboChipsetType->findData(oldSystemData.m_chipsetType);
     m_pComboChipsetType->setCurrentIndex(iChipsetTypePosition == -1 ? 0 : iChipsetTypePosition);
@@ -279,15 +280,4 @@
     m_pCheckBoxEFI->setChecked(oldSystemData.m_fEnabledEFI);
     m_pCheckBoxUseUTC->setChecked(oldSystemData.m_fEnabledUTC);
-    /* Remove any old data in the boot view: */
-    QAbstractItemView *pItemView = qobject_cast<QAbstractItemView*>(mTwBootOrder);
-    pItemView->model()->removeRows(0, pItemView->model()->rowCount());
-    /* Apply internal variables data to QWidget(s): */
-    for (int i = 0; i < oldSystemData.m_bootItems.size(); ++i)
-    {
-        const UIBootItemData data = oldSystemData.m_bootItems[i];
-        QListWidgetItem *pItem = new UIBootTableItem(data.m_enmType);
-        pItem->setCheckState(data.m_fEnabled ? Qt::Checked : Qt::Unchecked);
-        mTwBootOrder->addItem(pItem);
-    }
 
     /* Load old 'Processor' data from the cache: */
@@ -323,4 +313,5 @@
     /* Gather 'Motherboard' data: */
     newSystemData.m_iMemorySize = m_pSliderMemorySize->value();
+    newSystemData.m_bootItems = mTwBootOrder->bootItems();
     newSystemData.m_chipsetType = (KChipsetType)m_pComboChipsetType->itemData(m_pComboChipsetType->currentIndex()).toInt();
     newSystemData.m_pointingHIDType = (KPointingHIDType)m_pComboPointingHIDType->itemData(m_pComboPointingHIDType->currentIndex()).toInt();
@@ -329,14 +320,4 @@
     newSystemData.m_fEnabledEFI = m_pCheckBoxEFI->isChecked();
     newSystemData.m_fEnabledUTC = m_pCheckBoxUseUTC->isChecked();
-    /* Gather boot-table data: */
-    newSystemData.m_bootItems.clear();
-    for (int i = 0; i < mTwBootOrder->count(); ++i)
-    {
-        QListWidgetItem *pItem = mTwBootOrder->item(i);
-        UIBootItemData bootData;
-        bootData.m_enmType = static_cast<UIBootTableItem*>(pItem)->type();
-        bootData.m_fEnabled = pItem->checkState() == Qt::Checked;
-        newSystemData.m_bootItems << bootData;
-    }
 
     /* Gather 'Processor' data: */
Index: /trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIBootTable.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIBootTable.cpp	(revision 79963)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIBootTable.cpp	(revision 79964)
@@ -65,4 +65,37 @@
 }
 
+void UIBootTable::setBootItems(const UIBootItemDataList &bootItems)
+{
+    /* Clear initially: */
+    clear();
+
+    /* Apply internal variables data to QWidget(s): */
+    foreach (const UIBootItemData &data, bootItems)
+    {
+        UIBootTableItem *pItem = new UIBootTableItem(data.m_enmType);
+        pItem->setCheckState(data.m_fEnabled ? Qt::Checked : Qt::Unchecked);
+        addItem(pItem);
+    }
+}
+
+UIBootItemDataList UIBootTable::bootItems() const
+{
+    /* Prepare boot items: */
+    UIBootItemDataList bootItems;
+
+    /* Enumerate all the items we have: */
+    for (int i = 0; i < count(); ++i)
+    {
+        QListWidgetItem *pItem = item(i);
+        UIBootItemData bootData;
+        bootData.m_enmType = static_cast<UIBootTableItem*>(pItem)->type();
+        bootData.m_fEnabled = pItem->checkState() == Qt::Checked;
+        bootItems << bootData;
+    }
+
+    /* Return boot items: */
+    return bootItems;
+}
+
 void UIBootTable::adjustSizeToFitContent()
 {
Index: /trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIBootTable.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIBootTable.h	(revision 79963)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIBootTable.h	(revision 79964)
@@ -77,5 +77,4 @@
     /** Holds the item type. */
     KDeviceType m_enmType;
-
 };
 
@@ -96,4 +95,9 @@
     /** Constructs boot-table passing @a pParent to the base-class. */
     UIBootTable(QWidget *pParent = 0);
+
+    /** Defines @a bootItems list. */
+    void setBootItems(const UIBootItemDataList &bootItems);
+    /** Returns boot item list. */
+    UIBootItemDataList bootItems() const;
 
     /** Adjusts table size to fit contents. */
