Index: /trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIPortForwardingTable.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIPortForwardingTable.cpp	(revision 87246)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIPortForwardingTable.cpp	(revision 87247)
@@ -439,5 +439,7 @@
 
     /** Returns the list of port forwarding rules. */
-    const UIPortForwardingDataList rules() const;
+    UIPortForwardingDataList rules() const;
+    /** Defines the list of port forwarding @a newRules. */
+    void setRules(const UIPortForwardingDataList &newRules);
     /** Adds empty port forwarding rule for certain @a index. */
     void addRule(const QModelIndex &index);
@@ -531,5 +533,5 @@
 }
 
-const UIPortForwardingDataList UIPortForwardingModel::rules() const
+UIPortForwardingDataList UIPortForwardingModel::rules() const
 {
     /* Return the cached data: */
@@ -540,4 +542,23 @@
                                          pRow->guestIp(), pRow->guestPort());
     return data;
+}
+
+void UIPortForwardingModel::setRules(const UIPortForwardingDataList &newRules)
+{
+    /* Clear old data first of all: */
+    beginRemoveRows(QModelIndex(), 0, m_dataList.size() - 1);
+    foreach (const UIPortForwardingRow *pRow, m_dataList)
+        delete pRow;
+    m_dataList.clear();
+    endRemoveRows();
+
+    /* Fetch incoming data: */
+    beginInsertRows(QModelIndex(), 0, newRules.size() - 1);
+    foreach (const UIDataPortForwardingRule &rule, newRules)
+        m_dataList << new UIPortForwardingRow(qobject_cast<QITableView*>(parent()),
+                                              rule.name, rule.protocol,
+                                              rule.hostIp, rule.hostPort,
+                                              rule.guestIp, rule.guestPort);
+    endInsertRows();
 }
 
@@ -769,7 +790,14 @@
 }
 
-const UIPortForwardingDataList UIPortForwardingTable::rules() const
+UIPortForwardingDataList UIPortForwardingTable::rules() const
 {
     return m_pTableModel->rules();
+}
+
+void UIPortForwardingTable::setRules(const UIPortForwardingDataList &newRules)
+{
+    m_rules = newRules;
+    m_pTableModel->setRules(m_rules);
+    sltAdjustTable();
 }
 
Index: /trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIPortForwardingTable.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIPortForwardingTable.h	(revision 87246)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIPortForwardingTable.h	(revision 87247)
@@ -215,5 +215,7 @@
 
     /** Returns the list of port forwarding rules. */
-    const UIPortForwardingDataList rules() const;
+    UIPortForwardingDataList rules() const;
+    /** Defines the list of port forwarding @a newRules. */
+    void setRules(const UIPortForwardingDataList &newRules);
 
     /** Validates the table. */
@@ -268,6 +270,6 @@
     void prepareToolbar();
 
-    /** Holds the _initial_ list of Port Forwarding rules. */
-    const UIPortForwardingDataList &m_rules;
+    /** Holds the list of port forwarding rules. */
+    UIPortForwardingDataList  m_rules;
 
     /** Holds whether this table contains IPv6 rules, not IPv4. */
