Index: trunk/src/VBox/Frontends/VirtualBox/src/settings/editors/UINameAndSystemEditor.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/settings/editors/UINameAndSystemEditor.h	(revision 90233)
+++ trunk/src/VBox/Frontends/VirtualBox/src/settings/editors/UINameAndSystemEditor.h	(revision 90236)
@@ -123,5 +123,5 @@
     void setNameFieldValidator(const QString &strValidator);
 
-    /** Passes the @p fError to QILineEdit::mark(bool) effectively changing the background color. */
+    /** Passes the @p fError to QILineEdit::mark(bool) effectively marking it for error. */
     void markNameEditor(bool fError);
     /** Passes the @p fError and @a strErrorMessage to UIFilePathSelector::mark(bool)
Index: trunk/src/VBox/Frontends/VirtualBox/src/wizards/editors/UIHostnameDomainNameEditor.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/wizards/editors/UIHostnameDomainNameEditor.cpp	(revision 90233)
+++ trunk/src/VBox/Frontends/VirtualBox/src/wizards/editors/UIHostnameDomainNameEditor.cpp	(revision 90236)
@@ -56,4 +56,14 @@
     return m_pHostnameLineEdit && m_pHostnameLineEdit->hasAcceptableInput() &&
         m_pDomainNameLineEdit && m_pDomainNameLineEdit->hasAcceptableInput();
+}
+
+void UIHostnameDomainNameEditor::mark()
+{
+    if (m_pHostnameLineEdit)
+        m_pHostnameLineEdit->mark(!m_pHostnameLineEdit->hasAcceptableInput(),
+                                  tr("Hostname should be at least 2 character lomg. Allowed characters are alphanumerics, \"-\" and \".\""));
+    if (m_pDomainNameLineEdit)
+        m_pDomainNameLineEdit->mark(!m_pDomainNameLineEdit->hasAcceptableInput(),
+                                  tr("Domain name should be at least 2 character lomg. Allowed characters are alphanumerics, \"-\" and \".\""));
 }
 
@@ -120,8 +130,4 @@
 
     pLayout->addWidget(pLineEdit, iRow, 1, 1, 3);
-    // QRegularExpression hostNameRegex("^[a-zA-Z0-9-.]{2,}\\.[a-zA-Z0-9-.]+$");^[a-zA-Z0-9-.]{2,}\.[a-zA-Z0-9-.]+$
-    /* Host name and domain should be strings of minimum length of 2 and composed of alpha numerics, '-', and '.': */
-    m_pHostnameLineEdit->setValidator(new QRegularExpressionValidator(QRegularExpression("^[a-zA-Z0-9-.]{2,}"), this));
-
     pLabel->setBuddy(pLineEdit);
     ++iRow;
@@ -140,4 +146,9 @@
     addLineEdit(iRow, m_pHostnameLabel, m_pHostnameLineEdit, pMainLayout);
     addLineEdit(iRow, m_pDomainNameLabel, m_pDomainNameLineEdit, pMainLayout);
+
+    // QRegularExpression hostNameRegex("^[a-zA-Z0-9-.]{2,}\\.[a-zA-Z0-9-.]+$");^[a-zA-Z0-9-.]{2,}\.[a-zA-Z0-9-.]+$
+    /* Host name and domain should be strings of minimum length of 2 and composed of alpha numerics, '-', and '.': */
+    m_pHostnameLineEdit->setValidator(new QRegularExpressionValidator(QRegularExpression("^[a-zA-Z0-9-.]{2,}"), this));
+    m_pDomainNameLineEdit->setValidator(new QRegularExpressionValidator(QRegularExpression("^[a-zA-Z0-9-.]{2,}"), this));
 
     connect(m_pHostnameLineEdit, &QILineEdit::textChanged,
Index: trunk/src/VBox/Frontends/VirtualBox/src/wizards/editors/UIHostnameDomainNameEditor.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/wizards/editors/UIHostnameDomainNameEditor.h	(revision 90233)
+++ trunk/src/VBox/Frontends/VirtualBox/src/wizards/editors/UIHostnameDomainNameEditor.h	(revision 90236)
@@ -57,4 +57,5 @@
 
     bool isComplete() const;
+    void mark();
 
 protected:
Index: trunk/src/VBox/Frontends/VirtualBox/src/wizards/editors/UIWizardNewVMEditors.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/wizards/editors/UIWizardNewVMEditors.cpp	(revision 90233)
+++ trunk/src/VBox/Frontends/VirtualBox/src/wizards/editors/UIWizardNewVMEditors.cpp	(revision 90236)
@@ -28,7 +28,8 @@
 #include "UIFilePathSelector.h"
 #include "UIUserNamePasswordEditor.h"
+#include "UIVirtualCPUEditor.h"
 #include "UIWizardNewVM.h"
 #include "UIWizardNewVMEditors.h"
-#include "UIVirtualCPUEditor.h"
+#include "UIWizardNewVMUnattendedPageBasic.h"
 
 /* Other VBox includes: */
@@ -178,10 +179,17 @@
 }
 
-void UIGAInstallationGroupBox::mark(bool fError, const QString &strErrorMessage /* = QString() */)
-{
-    if (m_pGAISOFilePathSelector)
-        m_pGAISOFilePathSelector->mark(fError, strErrorMessage);
-}
-
+void UIGAInstallationGroupBox::mark()
+{
+    bool fError = !UIWizardNewVMUnattendedPage::checkGAISOFile(path());
+    if (m_pGAISOFilePathSelector)
+        m_pGAISOFilePathSelector->mark(fError, tr("Invalid Guest Additions installation media"));
+}
+
+bool UIGAInstallationGroupBox::isComplete() const
+{
+    if (!isChecked())
+        return true;
+    return UIWizardNewVMUnattendedPage::checkGAISOFile(path());
+}
 
 void UIGAInstallationGroupBox::sltToggleWidgetsEnabled(bool fEnabled)
@@ -249,5 +257,4 @@
                 this, &UIAdditionalUnattendedOptions::sigStartHeadlessChanged);
 
-
     retranslateUi();
 }
@@ -306,4 +313,10 @@
         return m_pHostnameDomainNameEditor->isComplete();
     return false;
+}
+
+void UIAdditionalUnattendedOptions::mark()
+{
+    if (m_pHostnameDomainNameEditor)
+        m_pHostnameDomainNameEditor->mark();
 }
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/wizards/editors/UIWizardNewVMEditors.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/wizards/editors/UIWizardNewVMEditors.h	(revision 90233)
+++ trunk/src/VBox/Frontends/VirtualBox/src/wizards/editors/UIWizardNewVMEditors.h	(revision 90236)
@@ -90,5 +90,6 @@
         QString path() const;
         void setPath(const QString &strPath, bool fRefreshText = true);
-        void mark(bool fError, const QString &strErrorMessage = QString());
+        void mark();
+        bool isComplete() const;
     /** @} */
 
@@ -128,4 +129,5 @@
         QString hostnameDomainName() const;
         bool isComplete() const;
+        void mark();
         void disableEnableProductKeyWidgets(bool fEnabled);
     /** @} */
Index: trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVMPageExpert.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVMPageExpert.cpp	(revision 90233)
+++ trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVMPageExpert.cpp	(revision 90236)
@@ -403,4 +403,10 @@
         updateHostnameDomainNameFromMachineName();
 
+    if (m_pGAInstallationISOContainer && !m_userModifiedParameters.contains("InstallGuestAdditions"))
+    {
+        m_pGAInstallationISOContainer->blockSignals(true);
+        m_pGAInstallationISOContainer->setChecked(pWizard->installGuestAdditions());
+        m_pGAInstallationISOContainer->blockSignals(false);
+    }
 
     setOSTypeDependedValues();
@@ -418,6 +424,15 @@
 void UIWizardNewVMPageExpert::markWidgets() const
 {
-    // UIWizardNewVMPageBaseNameOSType::markWidgets();
-    // UIWizardNewVMPageBaseUnattended::markWidgets();
+    if (m_pNameAndSystemEditor)
+    {
+        m_pNameAndSystemEditor->markNameEditor(m_pNameAndSystemEditor->name().isEmpty());
+        m_pNameAndSystemEditor->markImageEditor(!UIWizardNewVMNameOSTypePage::checkISOFile(m_pNameAndSystemEditor),
+                                                UIWizardNewVM::tr("Invalid file path or unreadable file"));
+    }
+    UIWizardNewVM *pWizard = qobject_cast<UIWizardNewVM*>(wizard());
+    if (pWizard && pWizard->installGuestAdditions() && m_pGAInstallationISOContainer)
+        m_pGAInstallationISOContainer->mark();
+    if (isUnattendedEnabled())
+        m_pAdditionalOptionsContainer->mark();
 }
 
@@ -498,68 +513,92 @@
 bool UIWizardNewVMPageExpert::isComplete() const
 {
-    //markWidgets();
+    markWidgets();
     bool fIsComplete = true;
-    // m_pToolBox->setPageTitleIcon(ExpertToolboxItems_NameAndOSType, QIcon());
-    // m_pToolBox->setPageTitleIcon(ExpertToolboxItems_Unattended, QIcon());
-    // m_pToolBox->setPageTitleIcon(ExpertToolboxItems_Disk, QIcon());
-    // m_pToolBox->setPageTitleIcon(ExpertToolboxItems_Hardware, QIcon());
-
-    // if (!UIWizardPage::isComplete())
-    // {
-    //     m_pToolBox->setPageTitleIcon(ExpertToolboxItems_NameAndOSType,
-    //                                  UIIconPool::iconSet(":/status_error_16px.png"),
-    //                                  UIWizardNewVM::tr("A valid VM name is required"));
-    //     fIsComplete = false;
-    // }
-
-    // if (m_pDiskExisting && m_pDiskExisting->isChecked() && uiCommon().medium(m_pDiskSelector->id()).isNull())
-    // {
-    //     m_pToolBox->setPageTitleIcon(ExpertToolboxItems_Disk,
-    //                                  UIIconPool::iconSet(":/status_error_16px.png"), UIWizardNewVM::tr("No valid disk is selected"));
-    //     fIsComplete = false;
-    // }
-
-    // if (m_pDiskNew && m_pDiskNew->isChecked())
-    // {
-    //     qulonglong uSize = field("mediumSize").toULongLong();
-    //     if (uSize <= 0)
-    //     {
-    //         m_pToolBox->setPageTitleIcon(ExpertToolboxItems_Disk,
-    //                                      UIIconPool::iconSet(":/status_error_16px.png"), UIWizardNewVM::tr("Invalid disk size"));
-    //         fIsComplete = false;
-    //     }
-    // }
-
-    // /* Check unattended install related stuff: */
-    // if (isUnattendedEnabled())
-    // {
-    //     /* Check the installation medium: */
-    //     if (!checkISOFile())
-    //     {
-    //         m_pToolBox->setPageTitleIcon(ExpertToolboxItems_NameAndOSType,
-    //                                      UIIconPool::iconSet(":/status_error_16px.png"),
-    //                                      UIWizardNewVM::tr("Invalid path or unreadable ISO file"));
-    //         fIsComplete = false;
-    //     }
-    //     /* Check the GA installation medium: */
-    //     if (m_pGAInstallationISOContainer && m_pGAInstallationISOContainer->isChecked() && !checkGAISOFile())
-    //     {
-    //         m_pToolBox->setPageTitleIcon(ExpertToolboxItems_Unattended,
-    //                                      UIIconPool::iconSet(":/status_error_16px.png"),
-    //                                      UIWizardNewVM::tr("Invalid path or unreadable ISO file"));
-
-    //         fIsComplete = false;
-    //     }
-    //     if (m_pUserNamePasswordGroupBox)
-    //     {
-    //         if (!m_pUserNamePasswordGroupBox->isComplete())
-    //         {
-    //             m_pToolBox->setPageTitleIcon(ExpertToolboxItems_Unattended,
-    //                                          UIIconPool::iconSet(":/status_error_16px.png"),
-    //                                          UIWizardNewVM::tr("Invalid username and/or password"));
-    //             fIsComplete = false;
-    //         }
-    //     }
-    // }
+    m_pToolBox->setPageTitleIcon(ExpertToolboxItems_NameAndOSType, QIcon());
+    m_pToolBox->setPageTitleIcon(ExpertToolboxItems_Unattended, QIcon());
+    m_pToolBox->setPageTitleIcon(ExpertToolboxItems_Disk, QIcon());
+    m_pToolBox->setPageTitleIcon(ExpertToolboxItems_Hardware, QIcon());
+
+    UIWizardNewVM *pWizard = qobject_cast<UIWizardNewVM*>(wizard());
+    AssertReturn(pWizard, false);
+
+    /* Check unattended install related stuff: */
+    if (isUnattendedEnabled())
+    {
+        /* Check the installation medium: */
+        if (!UIWizardNewVMNameOSTypePage::checkISOFile(m_pNameAndSystemEditor))
+        {
+            m_pToolBox->setPageTitleIcon(ExpertToolboxItems_NameAndOSType,
+                                         UIIconPool::iconSet(":/status_error_16px.png"),
+                                         UIWizardNewVM::tr("Invalid path or unreadable ISO file"));
+            fIsComplete = false;
+        }
+        /* Check the GA installation medium: */
+        if (m_pGAInstallationISOContainer && !m_pGAInstallationISOContainer->isComplete())
+        {
+            m_pToolBox->setPageTitleIcon(ExpertToolboxItems_Unattended,
+                                         UIIconPool::iconSet(":/status_error_16px.png"),
+                                         UIWizardNewVM::tr("Invalid path or unreadable ISO file"));
+
+            fIsComplete = false;
+        }
+        if (m_pUserNamePasswordGroupBox)
+        {
+            if (!m_pUserNamePasswordGroupBox->isComplete())
+            {
+                m_pToolBox->setPageTitleIcon(ExpertToolboxItems_Unattended,
+                                             UIIconPool::iconSet(":/status_error_16px.png"),
+                                             UIWizardNewVM::tr("Invalid username and/or password"));
+                fIsComplete = false;
+            }
+        }
+        if (m_pAdditionalOptionsContainer)
+        {
+            if (!m_pAdditionalOptionsContainer->isComplete())
+            {
+                m_pToolBox->setPageTitleIcon(ExpertToolboxItems_Unattended,
+                                             UIIconPool::iconSet(":/status_error_16px.png"),
+                                             UIWizardNewVM::tr("Invalid hostname or domain name"));
+                fIsComplete = false;
+            }
+        }
+    }
+
+    if (m_pNameAndSystemEditor)
+    {
+        if (m_pNameAndSystemEditor->name().isEmpty())
+        {
+            m_pToolBox->setPageTitleIcon(ExpertToolboxItems_NameAndOSType,
+                                         UIIconPool::iconSet(":/status_error_16px.png"),
+                                         UIWizardNewVM::tr("Virtual machine name is invalid"));
+            fIsComplete = false;
+        }
+        if (!UIWizardNewVMNameOSTypePage::checkISOFile(m_pNameAndSystemEditor))
+        {
+            m_pToolBox->setPageTitleIcon(ExpertToolboxItems_NameAndOSType,
+                                         UIIconPool::iconSet(":/status_error_16px.png"),
+                                         UIWizardNewVM::tr("Invalid ISO file"));
+            fIsComplete = false;
+        }
+    }
+
+    if (m_pDiskExisting && m_pDiskExisting->isChecked() && uiCommon().medium(m_pDiskSelector->id()).isNull())
+    {
+        m_pToolBox->setPageTitleIcon(ExpertToolboxItems_Disk,
+                                     UIIconPool::iconSet(":/status_error_16px.png"), UIWizardNewVM::tr("No valid disk is selected"));
+        fIsComplete = false;
+    }
+
+    if (m_pDiskNew && m_pDiskNew->isChecked())
+    {
+        qulonglong uSize = pWizard->mediumSize();
+        if (uSize <= 0)
+        {
+            m_pToolBox->setPageTitleIcon(ExpertToolboxItems_Disk,
+                                         UIIconPool::iconSet(":/status_error_16px.png"), UIWizardNewVM::tr("Invalid disk size"));
+            fIsComplete = false;
+        }
+    }
+
 
      // return !mediumFormat().isNull() &&
Index: trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVMUnattendedPageBasic.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVMUnattendedPageBasic.cpp	(revision 90233)
+++ trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVMUnattendedPageBasic.cpp	(revision 90236)
@@ -255,4 +255,4 @@
     UIWizardNewVM *pWizard = qobject_cast<UIWizardNewVM*>(wizard());
     if (pWizard && pWizard->installGuestAdditions() && m_pGAInstallationISOContainer)
-        m_pGAInstallationISOContainer->mark(!UIWizardNewVMUnattendedPage::checkGAISOFile(m_pGAInstallationISOContainer->path()));
-}
+        m_pGAInstallationISOContainer->mark();
+}
