Index: /trunk/src/VBox/Main/include/GuestSessionImpl.h
===================================================================
--- /trunk/src/VBox/Main/include/GuestSessionImpl.h	(revision 58551)
+++ /trunk/src/VBox/Main/include/GuestSessionImpl.h	(revision 58552)
@@ -58,5 +58,5 @@
     }
 
-    ComObjPtr<Progress> GetProgressObject() const;
+    const ComObjPtr<Progress>& GetProgressObject() const {return mProgress;}
 
 protected:
Index: /trunk/src/VBox/Main/include/ThreadTask.h
===================================================================
--- /trunk/src/VBox/Main/include/ThreadTask.h	(revision 58551)
+++ /trunk/src/VBox/Main/include/ThreadTask.h	(revision 58552)
@@ -40,5 +40,5 @@
 
 protected:
-    ThreadTask():m_strTaskName("GenericTask"){};
+    ThreadTask():m_pThread(NULL), m_strTaskName("GenericTask"){};
     PRTTHREAD m_pThread;
     Utf8Str m_strTaskName;
Index: /trunk/src/VBox/Main/src-client/GuestProcessImpl.cpp
===================================================================
--- /trunk/src/VBox/Main/src-client/GuestProcessImpl.cpp	(revision 58551)
+++ /trunk/src/VBox/Main/src-client/GuestProcessImpl.cpp	(revision 58552)
@@ -65,6 +65,7 @@
 
     GuestProcessTask(GuestProcess *pProcess)
-        : mProcess(pProcess),
-          mRC(VINF_SUCCESS) { }
+        : ThreadTask("GenericGuestProcessTask")
+        , mProcess(pProcess)
+        , mRC(VINF_SUCCESS) { }
 
     virtual ~GuestProcessTask(void) { }
@@ -1136,5 +1137,5 @@
     LogFlowThisFuncEnter();
 
-    int vrc;
+    int vrc = VINF_SUCCESS;
     HRESULT hr = S_OK;
 
@@ -1146,8 +1147,8 @@
         {
             delete pTask;
-            LogRel2(("GuestProcess: Could not create GuestProcessStartTask object \n"));
-            throw hr = E_FAIL;
-        }
-
+            LogFlow(("GuestProcess: Could not create GuestProcessStartTask object \n"));
+            throw VERR_MEMOBJ_INIT_FAILED;
+        }
+        LogFlow(("GuestProcess: Successfully created GuestProcessStartTask object \n"));
         //this function delete pTask in case of exceptions, so there is no need in the call of delete operator
         hr = pTask->createThread();
@@ -1157,9 +1158,8 @@
         vrc = VERR_NO_MEMORY;
     }
-    catch(...)
-    {
-        LogRel2(("GuestProcess: Could not create thread for GuestProcessStartTask task \n"));
-        if (hr == E_FAIL)
-            vrc = VERR_NO_MEMORY;
+    catch(int eVRC)
+    {
+        vrc = eVRC;
+        LogFlow(("GuestSession: Could not create thread for GuestProcessStartTask task %Rrc\n", vrc));
     }
 
Index: /trunk/src/VBox/Main/src-client/GuestSessionImpl.cpp
===================================================================
--- /trunk/src/VBox/Main/src-client/GuestSessionImpl.cpp	(revision 58551)
+++ /trunk/src/VBox/Main/src-client/GuestSessionImpl.cpp	(revision 58552)
@@ -1720,5 +1720,5 @@
 
     HRESULT hr = S_OK;
-    int vrc;
+    int vrc = VINF_SUCCESS;
 
     GuestSessionTaskInternalOpen* pTask = NULL;
@@ -1729,6 +1729,6 @@
         {
             delete pTask;
-            LogRel2(("GuestSession: Could not create GuestSessionTaskInternalOpen object \n"));
-            throw hr = E_FAIL;
+            LogFlow(("GuestSession: Could not create GuestSessionTaskInternalOpen object \n"));
+            throw VERR_MEMOBJ_INIT_FAILED;
         }
 
@@ -1743,9 +1743,8 @@
         vrc = VERR_NO_MEMORY;
     }
-    catch(...)
-    {
-        LogRel2(("GuestSession: Could not create thread for GuestSessionTaskInternalOpen task \n"));
-        if (hr == E_FAIL)
-            vrc = VERR_NO_MEMORY;
+    catch(int eVRC)
+    {
+        vrc = eVRC;
+        LogFlow(("GuestSession: Could not create thread for GuestSessionTaskInternalOpen task %Rrc\n", vrc));
     }
 
Index: /trunk/src/VBox/Main/src-client/GuestSessionImplTasks.cpp
===================================================================
--- /trunk/src/VBox/Main/src-client/GuestSessionImplTasks.cpp	(revision 58551)
+++ /trunk/src/VBox/Main/src-client/GuestSessionImplTasks.cpp	(revision 58552)
@@ -97,12 +97,4 @@
 
     return hr;
-}
-
-ComObjPtr<Progress> GuestSessionTask::GetProgressObject() const
-{
-    if(mProgress != NULL)
-        return mProgress;
-    else
-        return NULL;
 }
 
