Index: /trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIMediumSizeEditor.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIMediumSizeEditor.cpp	(revision 76198)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIMediumSizeEditor.cpp	(revision 76199)
@@ -36,4 +36,5 @@
 #endif /* !VBOX_WITH_PRECOMPILED_HEADERS */
 
+const qulonglong UIMediumSizeEditor::m_uSectorSize = 512;
 
 UIMediumSizeEditor::UIMediumSizeEditor(QWidget *pParent /* = 0 */)
@@ -108,4 +109,14 @@
     /* Notify the listeners: */
     emit sigSizeChanged(m_uSize);
+}
+
+void UIMediumSizeEditor::sltSizeEditorEditingFinished()
+{
+    qulonglong uSize = checkSectorSizeAlignment(m_uSize);
+
+    /* The size is already aligned to sector size: */
+    if (uSize == m_uSize)
+        return;
+    setMediumSize(uSize);
 }
 
@@ -176,4 +187,6 @@
             connect(m_pEditor, &QILineEdit::textChanged,
                     this, &UIMediumSizeEditor::sltSizeEditorChanged);
+            connect(m_pEditor, &QILineEdit::editingFinished,
+                    this, &UIMediumSizeEditor::sltSizeEditorEditingFinished);
 
             /* Add into layout: */
@@ -229,6 +242,6 @@
 int UIMediumSizeEditor::sizeMBToSlider(qulonglong uValue, int iSliderScale)
 {
-    /* Make sure *any* slider value is multiple of 512: */
-    uValue /= 512;
+    /* Make sure *any* slider value is multiple of m_uSectorSize: */
+    uValue /= m_uSectorSize;
 
     /* Calculate result: */
@@ -253,6 +266,6 @@
     qulonglong uResult = uTickMB + (uTickMBNext - uTickMB) * iStep / iSliderScale;
 
-    /* Make sure *any* slider value is multiple of 512: */
-    uResult *= 512;
+    /* Make sure *any* slider value is multiple of m_uSectorSize: */
+    uResult *= m_uSectorSize;
 
     /* Return result: */
@@ -266,2 +279,10 @@
     m_pEditor->setToolTip(strToolTip);
 }
+
+qulonglong UIMediumSizeEditor::checkSectorSizeAlignment(qulonglong uSize)
+{
+    if (m_uSectorSize == 0 || uSize % m_uSectorSize == 0)
+        return uSize;
+    qulonglong uNewSize = (uSize / m_uSectorSize) * m_uSectorSize;
+    return uNewSize;
+}
Index: /trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIMediumSizeEditor.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIMediumSizeEditor.h	(revision 76198)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIMediumSizeEditor.h	(revision 76199)
@@ -64,4 +64,5 @@
     /** Handles size editor change. */
     void sltSizeEditorChanged(const QString &strValue);
+    void sltSizeEditorEditingFinished();
 
 private:
@@ -80,5 +81,9 @@
     /** Updates slider/editor tool-tips. */
     void updateSizeToolTips(qulonglong uSize);
+    /** Checks if the uSize is divisible by m_uSectorSize */
+    qulonglong checkSectorSizeAlignment(qulonglong uSize);
 
+    /* Holds the block size. We force m_uSize to be multiple of this number. */
+    static const qulonglong m_uSectorSize;
     /** Holds the minimum medium size. */
     const qulonglong  m_uSizeMin;
