Index: /trunk/src/VBox/Main/include/GuestSessionImpl.h
===================================================================
--- /trunk/src/VBox/Main/include/GuestSessionImpl.h	(revision 42545)
+++ /trunk/src/VBox/Main/include/GuestSessionImpl.h	(revision 42546)
@@ -131,4 +131,5 @@
     const GuestCredentials &getCredentials(void);
     const GuestEnvironment &getEnvironment(void);
+    Utf8Str                 getName(void);
     uint32_t                getProtocolVersion(void) { return mData.mProtocolVersion; }
     int                     processClose(ComObjPtr<GuestProcess> pProcess);
Index: /trunk/src/VBox/Main/src-client/GuestCtrlImpl.cpp
===================================================================
--- /trunk/src/VBox/Main/src-client/GuestCtrlImpl.cpp	(revision 42545)
+++ /trunk/src/VBox/Main/src-client/GuestCtrlImpl.cpp	(revision 42546)
@@ -2844,5 +2844,40 @@
 STDMETHODIMP Guest::FindSession(IN_BSTR aSessionName, ComSafeArrayOut(IGuestSession *, aSessions))
 {
+#ifndef VBOX_WITH_GUEST_CONTROL
     ReturnComNotImplemented();
-}
-
+#else /* VBOX_WITH_GUEST_CONTROL */
+
+    CheckComArgOutSafeArrayPointerValid(aSessions);
+
+    LogFlowFuncEnter();
+
+    AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS);
+
+    Utf8Str strName(aSessionName);
+    std::list < ComObjPtr<GuestSession> > listSessions;
+
+    GuestSessions::const_iterator itSessions = mData.mGuestSessions.begin();
+    while (itSessions != mData.mGuestSessions.end())
+    {
+        if (strName.equals(itSessions->second->getName()))
+            listSessions.push_back(itSessions->second);
+        itSessions++;
+    }
+
+    LogFlowFunc(("Sessions with \"%ls\" = %RU32\n",
+                 aSessionName, listSessions.size()));
+
+    if (listSessions.size())
+    {
+        SafeIfaceArray<IGuestSession> sessionIfacs(listSessions);
+        sessionIfacs.detachTo(ComSafeArrayOutArg(aSessions));
+
+        return S_OK;
+    }
+
+    return setErrorNoLog(VBOX_E_OBJECT_NOT_FOUND,
+                         tr("Could not find sessions with name '%ls'"),
+                         aSessionName);
+#endif /* VBOX_WITH_GUEST_CONTROL */
+}
+
Index: /trunk/src/VBox/Main/src-client/GuestSessionImpl.cpp
===================================================================
--- /trunk/src/VBox/Main/src-client/GuestSessionImpl.cpp	(revision 42545)
+++ /trunk/src/VBox/Main/src-client/GuestSessionImpl.cpp	(revision 42546)
@@ -596,4 +596,9 @@
 }
 
+Utf8Str GuestSession::getName(void)
+{
+    return mData.mName;
+}
+
 int GuestSession::processClose(ComObjPtr<GuestProcess> pProcess)
 {
