Index: /trunk/src/VBox/Main/webservice/split-soapC.cpp
===================================================================
--- /trunk/src/VBox/Main/webservice/split-soapC.cpp	(revision 23604)
+++ /trunk/src/VBox/Main/webservice/split-soapC.cpp	(revision 23605)
@@ -87,4 +87,5 @@
         unsigned long cIfNesting = 0;
         unsigned long cBraceNesting = 0;
+        unsigned long cLinesSinceStaticMap = ~0UL / 2;
         bool fJustZero = false;
 
@@ -115,4 +116,5 @@
                            );
                 uLimit += cbChunk;
+                cLinesSinceStaticMap = ~0UL / 2;
             }
 
@@ -159,11 +161,21 @@
             }
 
+            /* look for static variables used for enum conversion. */
+            if (!strncmp(pLine, "static const struct soap_code_map", sizeof("static const struct soap_code_map") - 1))
+                cLinesSinceStaticMap = 0;
+            else
+                cLinesSinceStaticMap++;
+
             /* start a new output file if necessary and possible */
-            if (cbWritten >= uLimit && cIfNesting == 0 && fJustZero && cFiles < cChunk)
+            if (   cbWritten >= uLimit
+                && cIfNesting == 0
+                && fJustZero
+                && cFiles < cChunk
+                && cLinesSinceStaticMap > 150 /*hack!*/)
             {
                 fclose(pFileOut);
                 pFileOut = NULL;
             }
-                
+
             if (rc)
                 break;
