Index: /trunk/src/VBox/Frontends/VBoxManage/VBoxManageList.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VBoxManage/VBoxManageList.cpp	(revision 17612)
+++ /trunk/src/VBox/Frontends/VBoxManage/VBoxManageList.cpp	(revision 17613)
@@ -344,7 +344,7 @@
                 networkInterface->COMGETTER(IPV6Address)(IPV6Address.asOutParam());
                 RTPrintf("IPV6Address:     %lS\n", IPV6Address.raw());
-                Bstr IPV6NetworkMask;
-                networkInterface->COMGETTER(IPV6NetworkMask)(IPV6NetworkMask.asOutParam());
-                RTPrintf("IPV6NetworkMask: %lS\n", IPV6NetworkMask.raw());
+                ULONG IPV6NetworkMaskPrefixLength;
+                networkInterface->COMGETTER(IPV6NetworkMaskPrefixLength)(&IPV6NetworkMaskPrefixLength);
+                RTPrintf("IPV6NetworkMaskPrefixLength: %d\n", IPV6NetworkMaskPrefixLength);
                 Bstr HardwareAddress;
                 networkInterface->COMGETTER(HardwareAddress)(HardwareAddress.asOutParam());
Index: /trunk/src/VBox/Main/HostNetworkInterfaceImpl.cpp
===================================================================
--- /trunk/src/VBox/Main/HostNetworkInterfaceImpl.cpp	(revision 17612)
+++ /trunk/src/VBox/Main/HostNetworkInterfaceImpl.cpp	(revision 17613)
@@ -85,5 +85,5 @@
         m.networkMask = info.IPNetMask.u;
         m.IPV6Address = composeIPv6Address(&info.IPv6Address);
-        m.IPV6NetworkMask = composeIPv6Address(&info.IPv6NetMask);
+        m.IPV6NetworkMaskPrefixLength = composeIPv6PrefixLenghFromAddress(&info.IPv6NetMask);
         m.hardwareAddress = composeHardwareAddress(&info.MACAddress);
 #ifdef RT_OS_WINDOWS
@@ -127,5 +127,5 @@
     m.networkMask = pIf->IPNetMask.u;
     m.IPV6Address = composeIPv6Address(&pIf->IPv6Address);
-    m.IPV6NetworkMask = composeIPv6Address(&pIf->IPv6NetMask);
+    m.IPV6NetworkMaskPrefixLength = composeIPv6PrefixLenghFromAddress(&pIf->IPv6NetMask);
     m.hardwareAddress = composeHardwareAddress(&pIf->MACAddress);
 #ifdef RT_OS_WINDOWS
@@ -253,12 +253,12 @@
  * @param   aIPV6Mask address of result pointer
  */
-STDMETHODIMP HostNetworkInterface::COMGETTER(IPV6NetworkMask) (BSTR *aIPV6Mask)
-{
-    CheckComArgOutPointerValid(aIPV6Mask);
-
-    AutoCaller autoCaller (this);
-    CheckComRCReturnRC (autoCaller.rc());
-
-    m.IPV6NetworkMask.cloneTo (aIPV6Mask);
+STDMETHODIMP HostNetworkInterface::COMGETTER(IPV6NetworkMaskPrefixLength) (ULONG *aIPV6NetworkMaskPrefixLength)
+{
+    CheckComArgOutPointerValid(aIPV6NetworkMaskPrefixLength);
+
+    AutoCaller autoCaller (this);
+    CheckComRCReturnRC (autoCaller.rc());
+
+    *aIPV6NetworkMaskPrefixLength = m.IPV6NetworkMaskPrefixLength;
 
     return S_OK;
Index: /trunk/src/VBox/Main/idl/VirtualBox.xidl
===================================================================
--- /trunk/src/VBox/Main/idl/VirtualBox.xidl	(revision 17612)
+++ /trunk/src/VBox/Main/idl/VirtualBox.xidl	(revision 17613)
@@ -6479,5 +6479,5 @@
   <interface
      name="IHostNetworkInterface" extends="$unknown"
-     uuid="a82f7de2-695b-4bb9-ac13-f033e5fd75c2"
+     uuid="92ae8e7a-a213-4f9d-be10-b296bbc8b662"
      wsmap="managed"
      >
@@ -6512,6 +6512,6 @@
     </attribute>
 
-    <attribute name="IPV6NetworkMask" type="wstring" readonly="yes">
-      <desc>Returns the IP V6 network mask of the interface.</desc>
+    <attribute name="IPV6NetworkMaskPrefixLength" type="unsigned long" readonly="yes">
+      <desc>Returns the length IP V6 network mask prefix of the interface.</desc>
     </attribute>
 
Index: /trunk/src/VBox/Main/include/HostNetworkInterfaceImpl.h
===================================================================
--- /trunk/src/VBox/Main/include/HostNetworkInterfaceImpl.h	(revision 17612)
+++ /trunk/src/VBox/Main/include/HostNetworkInterfaceImpl.h	(revision 17613)
@@ -75,5 +75,5 @@
     STDMETHOD(COMGETTER(IPV6Supported)) (BOOL *aIPV6Supported);
     STDMETHOD(COMGETTER(IPV6Address)) (BSTR *aIPV6Address);
-    STDMETHOD(COMGETTER(IPV6NetworkMask)) (BSTR *aIPV6Mask);
+    STDMETHOD(COMGETTER(IPV6NetworkMaskPrefixLength)) (ULONG *aIPV6NetworkMaskPrefixLength);
     STDMETHOD(COMGETTER(HardwareAddress)) (BSTR *aHardwareAddress);
     STDMETHOD(COMGETTER(MediumType)) (HostNetworkInterfaceMediumType_T *aType);
@@ -106,5 +106,5 @@
         ULONG networkMask;
         Bstr IPV6Address;
-        Bstr IPV6NetworkMask;
+        ULONG IPV6NetworkMaskPrefixLength;
         Bstr hardwareAddress;
         HostNetworkInterfaceMediumType_T mediumType;
Index: /trunk/src/VBox/Main/include/netif.h
===================================================================
--- /trunk/src/VBox/Main/include/netif.h	(revision 17612)
+++ /trunk/src/VBox/Main/include/netif.h	(revision 17613)
@@ -102,4 +102,9 @@
 }
 
+DECLINLINE(ULONG) composeIPv6PrefixLenghFromAddress(PRTNETADDRIPV6 aAddrPtr)
+{
+    return ASMBitFirstClear(aAddrPtr, sizeof(RTNETADDRIPV6));
+}
+
 DECLINLINE(int) prefixLength2IPv6Address(ULONG cPrefix, PRTNETADDRIPV6 aAddrPtr)
 {
