Index: /trunk/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsNetwork.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsNetwork.cpp	(revision 66561)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsNetwork.cpp	(revision 66562)
@@ -1084,10 +1084,10 @@
         if (rules.size() != 6)
             continue;
-        data.m_ipv4rules << UIPortForwardingData(rules[0],
-                                                 gpConverter->fromInternalString<KNATProtocol>(rules[1]),
-                                                 QString(rules[2]).remove('[').remove(']'),
-                                                 rules[3].toUInt(),
-                                                 QString(rules[4]).remove('[').remove(']'),
-                                                 rules[5].toUInt());
+        data.m_ipv4rules << UIDataPortForwardingRule(rules[0],
+                                                     gpConverter->fromInternalString<KNATProtocol>(rules[1]),
+                                                     QString(rules[2]).remove('[').remove(']'),
+                                                     rules[3].toUInt(),
+                                                     QString(rules[4]).remove('[').remove(']'),
+                                                     rules[5].toUInt());
     }
 
@@ -1112,10 +1112,10 @@
         if (rules.size() != 6)
             continue;
-        data.m_ipv6rules << UIPortForwardingData(rules[0],
-                                                 gpConverter->fromInternalString<KNATProtocol>(rules[1]),
-                                                 QString(rules[2]).remove('[').remove(']'),
-                                                 rules[3].toUInt(),
-                                                 QString(rules[4]).remove('[').remove(']'),
-                                                 rules[5].toUInt());
+        data.m_ipv6rules << UIDataPortForwardingRule(rules[0],
+                                                     gpConverter->fromInternalString<KNATProtocol>(rules[1]),
+                                                     QString(rules[2]).remove('[').remove(']'),
+                                                     rules[3].toUInt(),
+                                                     QString(rules[4]).remove('[').remove(']'),
+                                                     rules[5].toUInt());
     }
 }
@@ -1139,5 +1139,5 @@
     foreach (const QString &strRule, network.GetPortForwardRules4())
         network.RemovePortForwardRule(false, strRule.section(':', 0, 0));
-    foreach (const UIPortForwardingData &newRule, data.m_ipv4rules)
+    foreach (const UIDataPortForwardingRule &newRule, data.m_ipv4rules)
         network.AddPortForwardRule(false,
                                    newRule.name, newRule.protocol,
@@ -1148,5 +1148,5 @@
     foreach (const QString &strRule, network.GetPortForwardRules6())
         network.RemovePortForwardRule(true, strRule.section(':', 0, 0));
-    foreach (const UIPortForwardingData &newRule, data.m_ipv6rules)
+    foreach (const UIDataPortForwardingRule &newRule, data.m_ipv6rules)
         network.AddPortForwardRule(true,
                                    newRule.name, newRule.protocol,
Index: /trunk/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsNetworkDetailsNAT.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsNetworkDetailsNAT.h	(revision 66561)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsNetworkDetailsNAT.h	(revision 66562)
@@ -38,6 +38,6 @@
         , m_fSupportsIPv6(false)
         , m_fAdvertiseDefaultIPv6Route(false)
-        , m_ipv4rules(QList<UIPortForwardingData>())
-        , m_ipv6rules(QList<UIPortForwardingData>())
+        , m_ipv4rules(QList<UIDataPortForwardingRule>())
+        , m_ipv6rules(QList<UIDataPortForwardingRule>())
     {}
 
Index: /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsNetwork.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsNetwork.cpp	(revision 66561)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsNetwork.cpp	(revision 66562)
@@ -1058,10 +1058,10 @@
                 const QStringList redirectData = redirect.split(',');
                 AssertMsg(redirectData.size() == 6, ("Redirect rule should be composed of 6 parts!\n"));
-                oldAdapterData.m_redirects << UIPortForwardingData(redirectData.at(0),
-                                                                   (KNATProtocol)redirectData.at(1).toUInt(),
-                                                                   redirectData.at(2),
-                                                                   redirectData.at(3).toUInt(),
-                                                                   redirectData.at(4),
-                                                                   redirectData.at(5).toUInt());
+                oldAdapterData.m_redirects << UIDataPortForwardingRule(redirectData.at(0),
+                                                                       (KNATProtocol)redirectData.at(1).toUInt(),
+                                                                       redirectData.at(2),
+                                                                       redirectData.at(3).toUInt(),
+                                                                       redirectData.at(4),
+                                                                       redirectData.at(5).toUInt());
             }
         }
@@ -1590,8 +1590,8 @@
                 foreach (const QString &strOldRedirect, comAdapter.GetNATEngine().GetRedirects())
                     comAdapter.GetNATEngine().RemoveRedirect(strOldRedirect.section(',', 0, 0));
-                foreach (const UIPortForwardingData &newRedirect, newAdapterData.m_redirects)
+                foreach (const UIDataPortForwardingRule &newRedirect, newAdapterData.m_redirects)
                     comAdapter.GetNATEngine().AddRedirect(newRedirect.name, newRedirect.protocol,
-                                                       newRedirect.hostIp, newRedirect.hostPort.value(),
-                                                       newRedirect.guestIp, newRedirect.guestPort.value());
+                                                          newRedirect.hostIp, newRedirect.hostPort.value(),
+                                                          newRedirect.guestIp, newRedirect.guestPort.value());
             }
 
Index: /trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIPortForwardingTable.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIPortForwardingTable.cpp	(revision 66561)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIPortForwardingTable.cpp	(revision 66562)
@@ -559,5 +559,5 @@
 {
     /* Fetch the incoming data: */
-    foreach (const UIPortForwardingData &rule, rules)
+    foreach (const UIDataPortForwardingRule &rule, rules)
         m_dataList << new UIPortForwardingRow(pParent,
                                               rule.name, rule.protocol,
@@ -592,7 +592,7 @@
     UIPortForwardingDataList data;
     foreach (const UIPortForwardingRow *pRow, m_dataList)
-        data << UIPortForwardingData(pRow->name(), pRow->protocol(),
-                                     pRow->hostIp(), pRow->hostPort(),
-                                     pRow->guestIp(), pRow->guestPort());
+        data << UIDataPortForwardingRule(pRow->name(), pRow->protocol(),
+                                         pRow->hostIp(), pRow->hostPort(),
+                                         pRow->guestIp(), pRow->guestPort());
     return data;
 }
Index: /trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIPortForwardingTable.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIPortForwardingTable.h	(revision 66561)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIPortForwardingTable.h	(revision 66562)
@@ -62,5 +62,5 @@
     PortData(ushort uValue) : m_uValue(uValue) {}
     PortData(const PortData &other) : m_uValue(other.value()) {}
-    bool operator==(const PortData &other) { return m_uValue == other.m_uValue; }
+    bool operator==(const PortData &other) const { return m_uValue == other.m_uValue; }
     ushort value() const { return m_uValue; }
 
@@ -71,27 +71,67 @@
 Q_DECLARE_METATYPE(PortData);
 
-/* Port forwarding data: */
-struct UIPortForwardingData
-{
-    UIPortForwardingData(const NameData &strName, KNATProtocol protocol,
-                         const IpData &strHostIP, PortData uHostPort,
-                         const IpData &strGuestIP, PortData uGuestPort)
-        : name(strName), protocol(protocol)
-        , hostIp(strHostIP), hostPort(uHostPort)
-        , guestIp(strGuestIP), guestPort(uGuestPort) {}
-    bool operator==(const UIPortForwardingData &other)
+/** Port Forwarding Rule data structure. */
+struct UIDataPortForwardingRule
+{
+    /** Constructs data. */
+    UIDataPortForwardingRule()
+        : name(QString())
+        , protocol(KNATProtocol_UDP)
+        , hostIp(IpData())
+        , hostPort(PortData())
+        , guestIp(IpData())
+        , guestPort(PortData())
+    {}
+
+    /** Constructs data on the basis of passed arguments.
+      * @param  strName      Brings the rule name.
+      * @param  enmProtocol  Brings the rule protocol.
+      * @param  strHostIP    Brings the rule host IP.
+      * @param  uHostPort    Brings the rule host port.
+      * @param  strGuestIP   Brings the rule guest IP.
+      * @param  uGuestPort   Brings the rule guest port. */
+    UIDataPortForwardingRule(const NameData &strName,
+                             KNATProtocol enmProtocol,
+                             const IpData &strHostIP,
+                             PortData uHostPort,
+                             const IpData &strGuestIP,
+                             PortData uGuestPort)
+        : name(strName)
+        , protocol(enmProtocol)
+        , hostIp(strHostIP)
+        , hostPort(uHostPort)
+        , guestIp(strGuestIP)
+        , guestPort(uGuestPort)
+    {}
+
+    /** Returns whether the @a other passed data is equal to this one. */
+    bool equal(const UIDataPortForwardingRule &other) const
     {
-        return name == other.name &&
-               protocol == other.protocol &&
-               hostIp == other.hostIp &&
-               hostPort == other.hostPort &&
-               guestIp == other.guestIp &&
-               guestPort == other.guestPort;
+        return true
+               && (name == other.name)
+               && (protocol == other.protocol)
+               && (hostIp == other.hostIp)
+               && (hostPort == other.hostPort)
+               && (guestIp == other.guestIp)
+               && (guestPort == other.guestPort)
+               ;
     }
+
+    /** Returns whether the @a other passed data is equal to this one. */
+    bool operator==(const UIDataPortForwardingRule &other) const { return equal(other); }
+    /** Returns whether the @a other passed data is different from this one. */
+    bool operator!=(const UIDataPortForwardingRule &other) const { return !equal(other); }
+
+    /** Holds the rule name. */
     NameData name;
+    /** Holds the rule protocol. */
     KNATProtocol protocol;
+    /** Holds the rule host IP. */
     IpData hostIp;
+    /** Holds the rule host port. */
     PortData hostPort;
+    /** Holds the rule guest IP. */
     IpData guestIp;
+    /** Holds the rule guest port. */
     PortData guestPort;
 };
@@ -120,5 +160,5 @@
 
 /* Port forwarding data list: */
-typedef QList<UIPortForwardingData> UIPortForwardingDataList;
+typedef QList<UIDataPortForwardingRule> UIPortForwardingDataList;
 
 /* Port forwarding dialog: */
