Index: trunk/src/VBox/Frontends/VirtualBox/src/networking/UIUpdateDefs.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/networking/UIUpdateDefs.cpp	(revision 94749)
+++ trunk/src/VBox/Frontends/VirtualBox/src/networking/UIUpdateDefs.cpp	(revision 94750)
@@ -67,4 +67,6 @@
 VBoxUpdateData::VBoxUpdateData(const QString &strData)
     : m_strData(strData)
+    , m_fCheckEnabled(false)
+    , m_fCheckRequired(false)
     , m_enmUpdatePeriod(UpdatePeriodType_Never)
     , m_enmUpdateChannel(KUpdateChannel_Invalid)
@@ -73,4 +75,7 @@
     if (m_strData == "never")
         return;
+
+    /* Check is enabled in all cases besides 'never': */
+    m_fCheckEnabled = true;
 
 #if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0)
@@ -108,13 +113,20 @@
         m_version = UIVersion(parser.at(3));
     }
-}
-
-VBoxUpdateData::VBoxUpdateData(UpdatePeriodType enmUpdatePeriod, KUpdateChannel enmUpdateChannel)
+
+    /* Decide whether we need to check: */
+    m_fCheckRequired =    (QDate::currentDate() >= date())
+                       && (   !version().isValid()
+                           || version() != UIVersion(uiCommon().vboxVersionStringNormalized()));
+}
+
+VBoxUpdateData::VBoxUpdateData(bool fCheckEnabled, UpdatePeriodType enmUpdatePeriod, KUpdateChannel enmUpdateChannel)
     : m_strData("never")
+    , m_fCheckEnabled(fCheckEnabled)
+    , m_fCheckRequired(false)
     , m_enmUpdatePeriod(enmUpdatePeriod)
     , m_enmUpdateChannel(enmUpdateChannel)
 {
-    /* Skip 'UpdatePeriodType_Never' case: */
-    if (m_enmUpdatePeriod == UpdatePeriodType_Never)
+    /* Skip 'check disabled' case: */
+    if (!m_fCheckEnabled)
         return;
 
@@ -144,28 +156,19 @@
     /* Compose m_strData: */
     m_strData = QString("%1, %2, %3, %4").arg(strRemindPeriod, strRemindDate, strUpdateChannel, strVersionValue);
+
+    /* Decide whether we need to check: */
+    m_fCheckRequired =    (QDate::currentDate() >= date())
+                       && (   !version().isValid()
+                           || version() != UIVersion(uiCommon().vboxVersionStringNormalized()));
 }
 
 bool VBoxUpdateData::isCheckEnabled() const
 {
-    /* Check is enabled if Period != Never: */
-    return m_enmUpdatePeriod != UpdatePeriodType_Never;
+    return m_fCheckEnabled;
 }
 
 bool VBoxUpdateData::isCheckRequired() const
 {
-    /* Return 'false' if there check is disabled: */
-    if (!isCheckEnabled())
-        return false;
-
-    /* Return 'true' if date of next check is today or missed: */
-    if (QDate::currentDate() >= m_date)
-        return true;
-
-    /* Return 'true' if saved version value is NOT valid or NOT equal to current: */
-    if (!version().isValid() || version() != UIVersion(uiCommon().vboxVersionStringNormalized()))
-        return true;
-
-    /* Return 'false' in all other cases: */
-    return false;
+    return m_fCheckRequired;
 }
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/networking/UIUpdateDefs.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/networking/UIUpdateDefs.h	(revision 94749)
+++ trunk/src/VBox/Frontends/VirtualBox/src/networking/UIUpdateDefs.h	(revision 94750)
@@ -82,6 +82,6 @@
     /** Constructs update description on the basis of passed @a strData. */
     VBoxUpdateData(const QString &strData = QString());
-    /** Constructs update description on the basis of passed @a enmUpdatePeriod and @a enmUpdateChannel. */
-    VBoxUpdateData(UpdatePeriodType enmUpdatePeriod, KUpdateChannel enmUpdateChannel);
+    /** Constructs update description on the basis of passed @a fCheckEnabled, @a enmUpdatePeriod and @a enmUpdateChannel. */
+    VBoxUpdateData(bool fCheckEnabled, UpdatePeriodType enmUpdatePeriod, KUpdateChannel enmUpdateChannel);
 
     /** Returns whether check is enabled. */
@@ -130,12 +130,17 @@
     QString  m_strData;
 
+    /** Holds whether check is enabled. */
+    bool  m_fCheckEnabled;
+    /** Holds whether it's need to check for update. */
+    bool  m_fCheckRequired;
+
     /** Holds the update period. */
-    UpdatePeriodType  m_enmUpdatePeriod;
+    UpdatePeriodType      m_enmUpdatePeriod;
     /** Holds the update date. */
-    QDate             m_date;
+    QDate           m_date;
     /** Holds the update channel. */
-    KUpdateChannel    m_enmUpdateChannel;
+    KUpdateChannel  m_enmUpdateChannel;
     /** Holds the update version. */
-    UIVersion         m_version;
+    UIVersion       m_version;
 };
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/networking/UIUpdateManager.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/networking/UIUpdateManager.cpp	(revision 94749)
+++ trunk/src/VBox/Frontends/VirtualBox/src/networking/UIUpdateManager.cpp	(revision 94750)
@@ -364,5 +364,5 @@
     VBoxUpdateData currentData(gEDataManager->applicationUpdateData());
     /* Encode/save new update data: */
-    VBoxUpdateData newData(currentData.updatePeriod(), currentData.updateChannel());
+    VBoxUpdateData newData(currentData.isCheckEnabled(), currentData.updatePeriod(), currentData.updateChannel());
     gEDataManager->setApplicationUpdateData(newData.data());
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/settings/editors/UIUpdateSettingsEditor.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/settings/editors/UIUpdateSettingsEditor.cpp	(revision 94749)
+++ trunk/src/VBox/Frontends/VirtualBox/src/settings/editors/UIUpdateSettingsEditor.cpp	(revision 94750)
@@ -69,5 +69,5 @@
 VBoxUpdateData UIUpdateSettingsEditor::value() const
 {
-    return m_pCheckBox ? VBoxUpdateData(updatePeriod(), updateChannel()) : m_guiValue;
+    return VBoxUpdateData(isCheckEnabled(), updatePeriod(), updateChannel());
 }
 
@@ -141,5 +141,5 @@
 {
     if (m_pFieldUpdateDate)
-        m_pFieldUpdateDate->setText(VBoxUpdateData(updatePeriod(), updateChannel()).dateToString());
+        m_pFieldUpdateDate->setText(VBoxUpdateData(isCheckEnabled(), updatePeriod(), updateChannel()).dateToString());
 }
 
@@ -265,9 +265,12 @@
 }
 
+bool UIUpdateSettingsEditor::isCheckEnabled() const
+{
+    return m_pCheckBox ? m_pCheckBox->isChecked() : m_guiValue.isCheckEnabled();
+}
+
 UpdatePeriodType UIUpdateSettingsEditor::updatePeriod() const
 {
-    return   m_pCheckBox && m_pCheckBox->isChecked() && m_pComboUpdatePeriod
-           ? (UpdatePeriodType)m_pComboUpdatePeriod->currentIndex()
-           : UpdatePeriodType_Never;
+    return m_pComboUpdatePeriod ? (UpdatePeriodType)m_pComboUpdatePeriod->currentIndex() : m_guiValue.updatePeriod();
 }
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/settings/editors/UIUpdateSettingsEditor.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/settings/editors/UIUpdateSettingsEditor.h	(revision 94749)
+++ trunk/src/VBox/Frontends/VirtualBox/src/settings/editors/UIUpdateSettingsEditor.h	(revision 94750)
@@ -72,4 +72,6 @@
     void prepareConnections();
 
+    /** Returns whether check is enabled. */
+    bool isCheckEnabled() const;
     /** Returns update period. */
     UpdatePeriodType updatePeriod() const;
