Index: /trunk/include/VBox/com/string.h
===================================================================
--- /trunk/include/VBox/com/string.h	(revision 51886)
+++ /trunk/include/VBox/com/string.h	(revision 51887)
@@ -576,5 +576,5 @@
     HRESULT assignEx(Utf8Str const &a_rSrcStr)
     {
-        return copyFromExNComRC(a_rSrcStr.m_psz, a_rSrcStr.m_cch);
+        return copyFromExNComRC(a_rSrcStr.m_psz, 0, a_rSrcStr.m_cch);
     }
 
@@ -594,5 +594,5 @@
             || a_offSrc > a_rSrcStr.m_cch)
             return E_INVALIDARG;
-        return copyFromExNComRC(a_rSrcStr.m_psz, a_rSrcStr.m_cch);
+        return copyFromExNComRC(a_rSrcStr.m_psz, a_offSrc, a_cchSrc);
     }
 
@@ -606,5 +606,5 @@
     HRESULT assignEx(const char *a_pcszSrc)
     {
-        return copyFromExNComRC(a_pcszSrc, a_pcszSrc ? strlen(a_pcszSrc) : 0);
+        return copyFromExNComRC(a_pcszSrc, 0, a_pcszSrc ? strlen(a_pcszSrc) : 0);
     }
 
@@ -620,5 +620,5 @@
     HRESULT assignEx(const char *a_pcszSrc, size_t a_cchSrc)
     {
-        return copyFromExNComRC(a_pcszSrc, a_cchSrc);
+        return copyFromExNComRC(a_pcszSrc, 0, a_cchSrc);
     }
 
@@ -719,5 +719,5 @@
     void copyFrom(CBSTR a_pbstr);
     HRESULT copyFromEx(CBSTR a_pbstr);
-    HRESULT copyFromExNComRC(const char *a_pcszSrc, size_t a_cchSrc);
+    HRESULT copyFromExNComRC(const char *a_pcszSrc, size_t a_offSrc, size_t a_cchSrc);
 
     friend class Bstr; /* to access our raw_copy() */
Index: /trunk/src/VBox/Main/glue/string.cpp
===================================================================
--- /trunk/src/VBox/Main/glue/string.cpp	(revision 51886)
+++ /trunk/src/VBox/Main/glue/string.cpp	(revision 51887)
@@ -247,4 +247,5 @@
  *
  * @param   a_pcszSrc   The source string.
+ * @param   a_offSrc    Start offset to copy from.
  * @param   a_cchSrc    The source string.
  * @returns S_OK or E_OUTOFMEMORY.
@@ -253,5 +254,5 @@
  *          code space.)
  */
-HRESULT Utf8Str::copyFromExNComRC(const char *a_pcszSrc, size_t a_cchSrc)
+HRESULT Utf8Str::copyFromExNComRC(const char *a_pcszSrc, size_t a_offSrc, size_t a_cchSrc)
 {
     cleanup();
@@ -263,5 +264,5 @@
             m_cch = a_cchSrc;
             m_cbAllocated = a_cchSrc + 1;
-            memcpy(m_psz, a_pcszSrc, a_cchSrc);
+            memcpy(m_psz, a_pcszSrc + a_offSrc, a_cchSrc);
             m_psz[a_cchSrc] = '\0';
         }
