Index: /trunk/src/VBox/Frontends/VirtualBox/src/wizards/clonevm/UICloneVMWizard.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/wizards/clonevm/UICloneVMWizard.cpp	(revision 37898)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/wizards/clonevm/UICloneVMWizard.cpp	(revision 37899)
@@ -69,5 +69,5 @@
 }
 
-bool UICloneVMWizard::createClone(const QString &strName, KCloneMode mode)
+bool UICloneVMWizard::createClone(const QString &strName, KCloneMode mode, bool fReinitMACs)
 {
     CVirtualBox vbox = vboxGlobal().virtualBox();
@@ -82,9 +82,8 @@
     }
 
-    /* NAT network adapters should keep there MAC address to prevent any
-     * reactivation. For the other modes they should be regenerated to prevent
-     * address conflicts in the network. */
+    /* Add the keep all MACs option to the import settings when requested. */
     QVector<KCloneOptions> options;
-    options.append(KCloneOptions_KeepNATMACs);
+    if (!fReinitMACs)
+        options.append(KCloneOptions_KeepAllMACs);
 
     /* Start cloning. */
@@ -124,4 +123,5 @@
 
     registerField("cloneName", this, "cloneName");
+    registerField("reinitMACs", this, "reinitMACs");
 
     connect(m_pNameEditor, SIGNAL(textChanged(const QString &)), this, SLOT(sltNameEditorTextChanged(const QString &)));
@@ -136,4 +136,9 @@
 {
     m_pNameEditor->setText(strName);
+}
+
+bool UICloneVMWizardPage1::isReinitMACsChecked() const
+{
+    return mReinitMACsCheckBox->isChecked();
 }
 
@@ -172,5 +177,5 @@
         startProcessing();
         /* Try to create the clone: */
-        bool fResult = static_cast<UICloneVMWizard*>(wizard())->createClone(cloneName(), KCloneMode_MachineState);
+        bool fResult = static_cast<UICloneVMWizard*>(wizard())->createClone(cloneName(), KCloneMode_MachineState, isReinitMACsChecked());
         /* Finish performing long-time operation: */
         endProcessing();
@@ -234,5 +239,6 @@
     /* Try to create the clone: */
     QString strName = field("cloneName").toString();
-    bool fResult = static_cast<UICloneVMWizard*>(wizard())->createClone(strName, cloneMode());
+    bool fReinitMACs = field("reinitMACs").toBool();
+    bool fResult = static_cast<UICloneVMWizard*>(wizard())->createClone(strName, cloneMode(), fReinitMACs);
     /* Finish performing long-time operation: */
     endProcessing();
Index: /trunk/src/VBox/Frontends/VirtualBox/src/wizards/clonevm/UICloneVMWizard.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/wizards/clonevm/UICloneVMWizard.h	(revision 37898)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/wizards/clonevm/UICloneVMWizard.h	(revision 37899)
@@ -38,5 +38,5 @@
     UICloneVMWizard(QWidget *pParent, CMachine machine, bool fShowChildsOption = true);
 
-    bool createClone(const QString &strName, KCloneMode mode);
+    bool createClone(const QString &strName, KCloneMode mode, bool fReinitMACs);
 
 private:
@@ -71,4 +71,5 @@
     Q_OBJECT;
     Q_PROPERTY(QString cloneName READ cloneName WRITE setCloneName);
+    Q_PROPERTY(bool reinitMACs READ isReinitMACsChecked);
 
 public:
@@ -79,4 +80,6 @@
     QString cloneName() const;
     void setCloneName(const QString &strName);
+
+    bool isReinitMACsChecked() const;
 
 protected:
Index: /trunk/src/VBox/Frontends/VirtualBox/src/wizards/clonevm/UICloneVMWizardPage1.ui
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/wizards/clonevm/UICloneVMWizardPage1.ui	(revision 37898)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/wizards/clonevm/UICloneVMWizardPage1.ui	(revision 37899)
@@ -55,4 +55,14 @@
    </item>
    <item>
+    <widget class="QCheckBox" name="mReinitMACsCheckBox">
+     <property name="toolTip">
+      <string>When checked a new unique MAC address will assigned to all configured network cards.</string>
+     </property>
+     <property name="text">
+      <string>&amp;Reinitialize the MAC address of all network cards</string>
+     </property>
+    </widget>
+   </item>
+   <item>
     <spacer name="verticalSpacer">
      <property name="orientation">
