Index: /trunk/src/VBox/Main/src-client/ConsoleImpl.cpp
===================================================================
--- /trunk/src/VBox/Main/src-client/ConsoleImpl.cpp	(revision 61643)
+++ /trunk/src/VBox/Main/src-client/ConsoleImpl.cpp	(revision 61644)
@@ -5181,13 +5181,15 @@
     if (vrc == VERR_NET_ADDRESS_IN_USE)
     {
+        /* Not fatal if we start the VM, fatal if the VM is already running. */
         Bstr bstr;
         mVRDEServer->GetVRDEProperty(Bstr("TCP/Ports").raw(), bstr.asOutParam());
         errMsg = Utf8StrFmt(tr("VirtualBox Remote Desktop Extension server can't bind to the port(s): %s"),
                                 Utf8Str(bstr).c_str());
-        LogRel(("VRDE: Warning: failed to launch VRDE server (%Rrc): '%s'\n", vrc, errMsg.c_str()));
+        LogRel(("VRDE: Warning: failed to launch VRDE server (%Rrc): %s\n", vrc, errMsg.c_str()));
     }
     else if (vrc == VINF_NOT_SUPPORTED)
     {
-        /* This means that the VRDE is not installed. */
+        /* This means that the VRDE is not installed.
+         * Not fatal if we start the VM, fatal if the VM is already running. */
         LogRel(("VRDE: VirtualBox Remote Desktop Extension is not available.\n"));
         errMsg = Utf8Str("VirtualBox Remote Desktop Extension is not available");
@@ -5195,9 +5197,9 @@
     else if (RT_FAILURE(vrc))
     {
-        /* Fail if the server is installed but can't start. */
+        /* Fail if the server is installed but can't start. Always fatal. */
         switch (vrc)
         {
             case VERR_FILE_NOT_FOUND:
-                errMsg = Utf8StrFmt(tr("Could not find the VirtualBox Remote Desktop Extension library."));
+                errMsg = Utf8StrFmt(tr("Could not find the VirtualBox Remote Desktop Extension library"));
                 break;
             default:
@@ -5264,7 +5266,9 @@
 
                             int vrc = mConsoleVRDPServer->Launch();
-                            Utf8Str errMsg = VRDPServerErrorToMsg(vrc);
                             if (vrc != VINF_SUCCESS)
+                            {
+                                Utf8Str errMsg = VRDPServerErrorToMsg(vrc);
                                 rc = setError(E_FAIL, errMsg.c_str());
+                            }
                             else
                                 mConsoleVRDPServer->EnableConnections();
@@ -9597,8 +9601,11 @@
         alock.acquire();
 
-        Utf8Str errMsg = pConsole->VRDPServerErrorToMsg(vrc);
-        if (   RT_FAILURE(vrc)
-            && vrc != VERR_NET_ADDRESS_IN_USE) /* this is not fatal */
-            throw i_setErrorStatic(E_FAIL, errMsg.c_str());
+        if (vrc != VINF_SUCCESS)
+        {
+            Utf8Str errMsg = pConsole->VRDPServerErrorToMsg(vrc);
+            if (   RT_FAILURE(vrc)
+                && vrc != VERR_NET_ADDRESS_IN_USE) /* not fatal */
+                throw i_setErrorStatic(E_FAIL, errMsg.c_str());
+        }
 
         ComPtr<IMachine> pMachine = pConsole->i_machine();
