Index: /trunk/src/VBox/Frontends/VBoxManage/VBoxManageStorageController.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VBoxManage/VBoxManageStorageController.cpp	(revision 23931)
+++ /trunk/src/VBox/Frontends/VBoxManage/VBoxManageStorageController.cpp	(revision 23932)
@@ -173,14 +173,18 @@
     }
 
-    if (fRunTime)
-    {
-        if (   !RTStrICmp(pszMedium, "none")
-            || !RTStrICmp(pszType, "hdd"))
-            errorArgument("DVD/HardDisk Drives can't be changed while the VM is still running\n");
-        if (pszPassThrough)
-            errorArgument("Drive passthrough state can't be changed while the VM is still running\n");
-
+    if (   fRunTime
+        && (   !RTStrICmp(pszMedium, "none")
+            || !RTStrICmp(pszType, "hdd")))
+    {
+        errorArgument("DVD/HardDisk Drives can't be changed while the VM is still running\n");
         goto leave;
     }
+
+    if (fRunTime && pszPassThrough)
+    {
+        errorArgument("Drive passthrough state can't be changed while the VM is still running\n");
+        goto leave;
+    }
+
 
     /* get the mutable session machine */
@@ -214,5 +218,11 @@
                 {
                     /* just unmount the floppy/dvd */
-                    CHECK_ERROR (machine, MountMedium(Bstr(pszCtl), port, device, NULL));
+                    CHECK_ERROR (machine, MountMedium(Bstr(pszCtl), port, device, Bstr("")));
+                }
+                else
+                {
+                    errorArgument("No DVD/Floppy Drive attached to the controller '%s'"
+                                  "at the port: %u, device: %u", pszCtl, port, device);
+                    goto leave;
                 }
             }
@@ -239,5 +249,5 @@
             /* attach a empty floppy/dvd drive after removing previous attachment */
             machine->DetachDevice(Bstr(pszCtl), port, device);
-            CHECK_ERROR (machine, AttachDevice(Bstr(pszCtl), port, device, deviceType, NULL));
+            CHECK_ERROR (machine, AttachDevice(Bstr(pszCtl), port, device, deviceType, Bstr("")));
         }
     }
@@ -269,10 +279,10 @@
                     {
                         machine->DetachDevice(Bstr(pszCtl), port, device);
-                        rc = machine->AttachDevice(Bstr(pszCtl), port, device, DeviceType_DVD, NULL);
+                        rc = machine->AttachDevice(Bstr(pszCtl), port, device, DeviceType_DVD, Bstr(""));
                     }
                 }
                 else
                 {
-                    rc = machine->AttachDevice(Bstr(pszCtl), port, device, DeviceType_DVD, NULL);
+                    rc = machine->AttachDevice(Bstr(pszCtl), port, device, DeviceType_DVD, Bstr(""));
                 }
             }
@@ -393,5 +403,5 @@
             if (   !fRunTime
                 && !floppyAttachment)
-                CHECK_ERROR (machine, AttachDevice(Bstr(pszCtl), port, device, DeviceType_Floppy, NULL));
+                CHECK_ERROR (machine, AttachDevice(Bstr(pszCtl), port, device, DeviceType_Floppy, Bstr("")));
 
             /* host drive? */
