Index: /trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvd/UIWizardNewVDPageBasic3.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvd/UIWizardNewVDPageBasic3.cpp	(revision 78120)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvd/UIWizardNewVDPageBasic3.cpp	(revision 78121)
@@ -128,5 +128,5 @@
 
 /* static */
-QString UIWizardNewVDPage3::absoluteFilePath(const QString &strFileName, const QString &strDefaultPath)
+QString UIWizardNewVDPage3::absoluteFilePath(const QString &strFileName, const QString &strPath)
 {
     /* Wrap file-info around received file name: */
@@ -135,9 +135,18 @@
     if (fileInfo.fileName() == strFileName || fileInfo.isRelative())
     {
-        /* Resolve path on the basis of default path we have: */
-        fileInfo = QFileInfo(strDefaultPath, strFileName);
+        /* Resolve path on the basis of  path we have: */
+        fileInfo = QFileInfo(strPath, strFileName);
     }
     /* Return full absolute hard disk file path: */
     return QDir::toNativeSeparators(fileInfo.absoluteFilePath());
+}
+
+/*static */
+QString UIWizardNewVDPage3::absoluteFilePath(const QString &strFileName, const QString &strPath, const QString &strExtension)
+{
+    QString strFilePath = absoluteFilePath(strFileName, strPath);
+    if (QFileInfo(strFilePath).suffix().isEmpty())
+        strFilePath += QString(".%1").arg(strExtension);
+    return strFilePath;
 }
 
@@ -267,5 +276,5 @@
     m_strDefaultExtension = defaultExtension(field("mediumFormat").value<CMediumFormat>());
     /* Set default name as text for location editor: */
-    m_pLocationEditor->setText(m_strDefaultName);
+    m_pLocationEditor->setText(absoluteFilePath(m_strDefaultName, m_strDefaultPath, m_strDefaultExtension));
 }
 
Index: /trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvd/UIWizardNewVDPageBasic3.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvd/UIWizardNewVDPageBasic3.h	(revision 78120)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvd/UIWizardNewVDPageBasic3.h	(revision 78121)
@@ -46,5 +46,8 @@
     /* Location-editors stuff: */
     static QString toFileName(const QString &strName, const QString &strExtension);
-    static QString absoluteFilePath(const QString &strFileName, const QString &strDefaultPath);
+    /* Returns the full image file path except the extension. */
+    static QString absoluteFilePath(const QString &strFileName, const QString &strPath);
+    /* Returns the full image file path including the extension. */
+    static QString absoluteFilePath(const QString &strFileName, const QString &strPath, const QString &strExtension);
     static QString defaultExtension(const CMediumFormat &mediumFormatRef);
 
Index: /trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvd/UIWizardNewVDPageExpert.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvd/UIWizardNewVDPageExpert.cpp	(revision 78120)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvd/UIWizardNewVDPageExpert.cpp	(revision 78121)
@@ -17,4 +17,5 @@
 
 /* Qt includes: */
+#include <QDir>
 #include <QGridLayout>
 #include <QVBoxLayout>
@@ -47,4 +48,5 @@
     : UIWizardNewVDPage3(strDefaultName, strDefaultPath)
 {
+    /* Get default extension for new virtual-disk: */
     /* Create widgets: */
     QGridLayout *pMainLayout = new QGridLayout(this);
@@ -56,7 +58,4 @@
             {
                 m_pLocationEditor = new QLineEdit(m_pLocationCnt);
-                {
-                    m_pLocationEditor->setText(m_strDefaultName);
-                }
                 m_pLocationOpenButton = new QIToolButton(m_pLocationCnt);
                 {
@@ -174,4 +173,10 @@
     registerField("mediumPath", this, "mediumPath");
     registerField("mediumSize", this, "mediumSize");
+
+    /* Initialization of m_strDefaultExtension is done  here
+       since first m_formats should be populated and fields should be registered: */
+    m_strDefaultExtension = defaultExtension(mediumFormat());
+    if (m_pLocationEditor)
+        m_pLocationEditor->setText(absoluteFilePath(m_strDefaultName, m_strDefaultPath, m_strDefaultExtension));
 }
 
@@ -202,4 +207,14 @@
     /* Compose virtual-disk extension: */
     m_strDefaultExtension = defaultExtension(mf);
+    /* Update m_pLocationEditor's text if necessary: */
+    if (!m_pLocationEditor->text().isEmpty() && !m_strDefaultExtension.isEmpty())
+    {
+        QFileInfo fileInfo(m_pLocationEditor->text());
+        if (fileInfo.completeSuffix() != m_strDefaultExtension)
+        {
+            QString strNewFilePath = QString("%1/%2.%3").arg(fileInfo.absoluteDir().absolutePath()).arg(fileInfo.baseName()).arg(m_strDefaultExtension);
+            m_pLocationEditor->setText(strNewFilePath);
+        }
+    }
 
     /* Broadcast complete-change: */
