Index: /trunk/doc/manual/en_US/user_Networking.xml
===================================================================
--- /trunk/doc/manual/en_US/user_Networking.xml	(revision 41271)
+++ /trunk/doc/manual/en_US/user_Networking.xml	(revision 41272)
@@ -637,4 +637,6 @@
         </listitem>
       </itemizedlist></para>
+    <para><note>On Linux and Mac OS X hosts the number of host-only interfaces is
+    limited to 128.</note></para>
   </sect1>
 
Index: /trunk/src/VBox/HostDrivers/VBoxNetAdp/VBoxNetAdp.c
===================================================================
--- /trunk/src/VBox/HostDrivers/VBoxNetAdp/VBoxNetAdp.c	(revision 41271)
+++ /trunk/src/VBox/HostDrivers/VBoxNetAdp/VBoxNetAdp.c	(revision 41272)
@@ -1185,4 +1185,6 @@
     memset(g_aUnits, 0, sizeof(g_aUnits));
     memset(g_aAdapters, 0, sizeof(g_aAdapters));
+    LogFlow(("vboxnetadp: max host-only interfaces supported: %d (%d bytes)\n",
+             VBOXNETADP_MAX_INSTANCES, sizeof(g_aAdapters)));
     for (i = 0; i < RT_ELEMENTS(g_aAdapters); i++)
     {
Index: /trunk/src/VBox/HostDrivers/VBoxNetAdp/VBoxNetAdpInternal.h
===================================================================
--- /trunk/src/VBox/HostDrivers/VBoxNetAdp/VBoxNetAdpInternal.h	(revision 41271)
+++ /trunk/src/VBox/HostDrivers/VBoxNetAdp/VBoxNetAdpInternal.h	(revision 41272)
@@ -30,5 +30,5 @@
 typedef struct VBOXNETADPGLOBALS *PVBOXNETADPGLOBALS;
 
-#define VBOXNETADP_MAX_INSTANCES   8
+#define VBOXNETADP_MAX_INSTANCES   128
 #define VBOXNETADP_MAX_UNITS       128
 #define VBOXNETADP_NAME            "vboxnet"
@@ -126,15 +126,5 @@
         void *pvAlign;
         /** Padding. */
-#if defined(RT_OS_WINDOWS)
-# if defined(VBOX_NETFLT_ONDEMAND_BIND)
-        uint8_t abPadding[192];
-# else
-        uint8_t abPadding[1024];
-# endif
-#elif defined(RT_OS_LINUX)
         uint8_t abPadding[64];
-#else
-        uint8_t abPadding[64];
-#endif
     } u;
     /** The interface name. */
Index: /trunk/src/VBox/HostDrivers/VBoxNetAdp/linux/VBoxNetAdp-linux.c
===================================================================
--- /trunk/src/VBox/HostDrivers/VBoxNetAdp/linux/VBoxNetAdp-linux.c	(revision 41271)
+++ /trunk/src/VBox/HostDrivers/VBoxNetAdp/linux/VBoxNetAdp-linux.c	(revision 41272)
@@ -315,5 +315,5 @@
             {
                 Log(("VBoxNetAdpLinuxIOCtl: vboxNetAdpCreate -> %Rrc\n", rc));
-                return -EINVAL;
+                return -(rc == VERR_OUT_OF_RESOURCES ? ENOMEM : EINVAL);
             }
 
Index: /trunk/src/apps/adpctl/VBoxNetAdpCtl.cpp
===================================================================
--- /trunk/src/apps/adpctl/VBoxNetAdpCtl.cpp	(revision 41271)
+++ /trunk/src/apps/adpctl/VBoxNetAdpCtl.cpp	(revision 41272)
@@ -39,4 +39,5 @@
 /** @todo These are duplicates from src/VBox/HostDrivers/VBoxNetAdp/VBoxNetAdpInternal.h */
 #define VBOXNETADP_CTL_DEV_NAME    "/dev/vboxnetctl"
+#define VBOXNETADP_MAX_INSTANCES   128
 #define VBOXNETADP_NAME            "vboxnet"
 #define VBOXNETADP_MAX_NAME_LEN    32
@@ -184,6 +185,7 @@
     if (fd == -1)
     {
-        fprintf(stderr, "VBoxNetAdpCtl: Error while %s '%s': ",
-               uCmd == VBOXNETADP_CTL_REMOVE ? "removing" : "adding", pReq->szName);
+        fprintf(stderr, "VBoxNetAdpCtl: Error while %s %s: ",
+                uCmd == VBOXNETADP_CTL_REMOVE ? "removing" : "adding",
+                pReq->szName[0] ? pReq->szName : "new interface");
         perror("failed to open " VBOXNETADP_CTL_DEV_NAME);
         return ADPCTLERR_NO_CTL_DEV;
@@ -193,6 +195,7 @@
     if (rc == -1)
     {
-        fprintf(stderr, "VBoxNetAdpCtl: Error while %s '%s': ",
-               uCmd == VBOXNETADP_CTL_REMOVE ? "removing" : "adding", pReq->szName);
+        fprintf(stderr, "VBoxNetAdpCtl: Error while %s %s: ",
+                uCmd == VBOXNETADP_CTL_REMOVE ? "removing" : "adding",
+                pReq->szName[0] ? pReq->szName : "new interface");
         perror("VBoxNetAdpCtl: ioctl failed for " VBOXNETADP_CTL_DEV_NAME);
         rc = ADPCTLERR_IOCTL_FAILED;
@@ -210,5 +213,5 @@
     if (   strlen(pcszNameIn) >= VBOXNETADP_MAX_NAME_LEN
         || sscanf(pcszNameIn, "vboxnet%d", &iAdapterIndex) != 1
-        || iAdapterIndex < 0 || iAdapterIndex > 99 )
+        || iAdapterIndex < 0 || iAdapterIndex >= VBOXNETADP_MAX_INSTANCES )
     {
         fprintf(stderr, "VBoxNetAdpCtl: Setting configuration for '%s' is not supported.\n", pcszNameIn);
