Index: /trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UINewVMWzd.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UINewVMWzd.cpp	(revision 29896)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UINewVMWzd.cpp	(revision 29897)
@@ -544,4 +544,9 @@
 
 UINewVMWzdPage5::UINewVMWzdPage5()
+    : m_iIDECount(0)
+    , m_iSATACount(0)
+    , m_iSCSICount(0)
+    , m_iFloppyCount(0)
+    , m_iSASCount(0)
 {
     /* Decorate page */
@@ -670,6 +675,6 @@
 
     /* Create recommended DVD storage controller */
-    QString ctrDvdName = VBoxVMSettingsHD::tr("Storage Controller");
     KStorageBus ctrDvdBus = type.GetRecommendedDvdStorageBus();
+    QString ctrDvdName = getNextControllerName(ctrDvdBus);
     m_Machine.AddStorageController(ctrDvdName, ctrDvdBus);
 
@@ -686,5 +691,5 @@
     if (ctrHdBus != ctrDvdBus || hdStorageControllerType != dvdStorageControllerType)
     {
-        ctrHdName = VBoxVMSettingsHD::tr("Storage Controller 1");
+        ctrHdName = getNextControllerName(ctrHdBus);
         m_Machine.AddStorageController(ctrHdName, ctrHdBus);
         hdCtr = m_Machine.GetStorageControllerByName(ctrHdName);
@@ -786,4 +791,55 @@
 }
 
+QString UINewVMWzdPage5::getNextControllerName(KStorageBus type)
+{
+    QString strControllerName;
+    switch (type)
+    {
+        case KStorageBus_IDE:
+        {
+            strControllerName = VBoxVMSettingsHD::tr("IDE Controller");
+            ++m_iIDECount;
+            if (m_iIDECount > 1)
+                strControllerName = QString("%1 %2").arg(strControllerName).arg(m_iIDECount);
+            break;
+        }
+        case KStorageBus_SATA:
+        {
+            strControllerName = VBoxVMSettingsHD::tr("SATA Controller");
+            ++m_iSATACount;
+            if (m_iSATACount > 1)
+                strControllerName = QString("%1 %2").arg(strControllerName).arg(m_iSATACount);
+            break;
+        }
+        case KStorageBus_SCSI:
+        {
+            strControllerName = VBoxVMSettingsHD::tr("SCSI Controller");
+            ++m_iSCSICount;
+            if (m_iSCSICount > 1)
+                strControllerName = QString("%1 %2").arg(strControllerName).arg(m_iSCSICount);
+            break;
+        }
+        case KStorageBus_Floppy:
+        {
+            strControllerName = VBoxVMSettingsHD::tr("Floppy Controller");
+            ++m_iFloppyCount;
+            if (m_iFloppyCount > 1)
+                strControllerName = QString("%1 %2").arg(strControllerName).arg(m_iFloppyCount);
+            break;
+        }
+        case KStorageBus_SAS:
+        {
+            strControllerName = VBoxVMSettingsHD::tr("SAS Controller");
+            ++m_iSASCount;
+            if (m_iSASCount > 1)
+                strControllerName = QString("%1 %2").arg(strControllerName).arg(m_iSASCount);
+            break;
+        }
+        default:
+            break;
+    }
+    return strControllerName;
+}
+
 CMachine UINewVMWzdPage5::machine() const
 {
Index: /trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UINewVMWzd.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UINewVMWzd.h	(revision 29896)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UINewVMWzd.h	(revision 29897)
@@ -178,4 +178,11 @@
     void setMachine(const CMachine &machine);
     CMachine m_Machine;
+
+    QString getNextControllerName(KStorageBus type);
+    int m_iIDECount;
+    int m_iSATACount;
+    int m_iSCSICount;
+    int m_iFloppyCount;
+    int m_iSASCount;
 };
 
