Index: /trunk/src/VBox/Frontends/VirtualBox/src/extensions/QIAdvancedSlider.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/extensions/QIAdvancedSlider.cpp	(revision 27412)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/extensions/QIAdvancedSlider.cpp	(revision 27413)
@@ -222,4 +222,6 @@
     m_pSlider->m_minOpt = min;
     m_pSlider->m_maxOpt = max;
+
+    update();
 }
 
@@ -228,4 +230,6 @@
     m_pSlider->m_minWrn = min;
     m_pSlider->m_maxWrn = max;
+
+    update();
 }
 
@@ -234,4 +238,6 @@
     m_pSlider->m_minErr = min;
     m_pSlider->m_maxErr = max;
+
+    update();
 }
 
Index: /trunk/src/VBox/Frontends/VirtualBox/src/settings/vm/VBoxVMSettingsDisplay.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/settings/vm/VBoxVMSettingsDisplay.cpp	(revision 27412)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/settings/vm/VBoxVMSettingsDisplay.cpp	(revision 27413)
@@ -54,11 +54,11 @@
     /* Setup constants */
     CSystemProperties sys = vboxGlobal().virtualBox().GetSystemProperties();
-    const uint MinVRAM = sys.GetMinGuestVRAM();
-    const uint MaxVRAM = sys.GetMaxGuestVRAM();
+    m_minVRAM = sys.GetMinGuestVRAM();
+    m_maxVRAM = sys.GetMaxGuestVRAM();
     const uint MinMonitors = 1;
     const uint MaxMonitors = sys.GetMaxGuestMonitors();
 
     /* Setup validators */
-    mLeMemory->setValidator (new QIntValidator (MinVRAM, MaxVRAM, this));
+    mLeMemory->setValidator (new QIntValidator (m_minVRAM, m_maxVRAM, this));
     mLeMonitors->setValidator (new QIntValidator (MinMonitors, MaxMonitors, this));
     mLeVRDPPort->setValidator (new QRegExpValidator (QRegExp ("(([0-9]{1,5}(\\-[0-9]{1,5}){0,1}),)*([0-9]{1,5}(\\-[0-9]{1,5}){0,1})"), this));
@@ -72,5 +72,5 @@
 
     /* Setup initial values */
-    mSlMemory->setPageStep (calcPageStep (MaxVRAM));
+    mSlMemory->setPageStep (calcPageStep (m_maxVRAM));
     mSlMemory->setSingleStep (mSlMemory->pageStep() / 4);
     mSlMemory->setTickInterval (mSlMemory->pageStep());
@@ -79,11 +79,11 @@
     mSlMonitors->setTickInterval (1);
     /* Setup the scale so that ticks are at page step boundaries */
-    mSlMemory->setMinimum ((MinVRAM / mSlMemory->pageStep()) * mSlMemory->pageStep());
-    mSlMemory->setMaximum (MaxVRAM);
+    mSlMemory->setMinimum ((m_minVRAM / mSlMemory->pageStep()) * mSlMemory->pageStep());
+    mSlMemory->setMaximum (m_maxVRAM);
     mSlMemory->setSnappingEnabled (true);
     quint64 needMBytes = VBoxGlobal::requiredVideoMemory (&mMachine) / _1M;
     mSlMemory->setErrorHint (0, 1);
     mSlMemory->setWarningHint (1, needMBytes);
-    mSlMemory->setOptimalHint (needMBytes, MaxVRAM);
+    mSlMemory->setOptimalHint (needMBytes, m_maxVRAM);
     mSlMonitors->setMinimum (MinMonitors);
     mSlMonitors->setMaximum (MaxMonitors);
@@ -310,4 +310,9 @@
 #endif /* VBOX_WITH_VIDEOHWACCEL */
     mCb3D->setEnabled(cVal == 1 && vboxGlobal().virtualBox().GetHost().GetAcceleration3DAvailable());
-}
-
+
+    /* The memory requirements have changed too. */
+    quint64 needMBytes = VBoxGlobal::requiredVideoMemory (&mMachine, cVal) / _1M;
+    mSlMemory->setWarningHint (1, needMBytes);
+    mSlMemory->setOptimalHint (needMBytes, m_maxVRAM);
+}
+
Index: /trunk/src/VBox/Frontends/VirtualBox/src/settings/vm/VBoxVMSettingsDisplay.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/settings/vm/VBoxVMSettingsDisplay.h	(revision 27412)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/settings/vm/VBoxVMSettingsDisplay.h	(revision 27413)
@@ -66,4 +66,7 @@
     CMachine mMachine;
     QIWidgetValidator *mValidator;
+
+    int m_minVRAM;
+    int m_maxVRAM;
 };
 
