Index: trunk/zoo-project/zoo-kernel/zoo_service_loader.c
===================================================================
--- trunk/zoo-project/zoo-kernel/zoo_service_loader.c	(revision 582)
+++ trunk/zoo-project/zoo-kernel/zoo_service_loader.c	(revision 583)
@@ -726,6 +726,10 @@
   map *di = getMap (request_inputs, "DataInputs");
 
-  char *dataInputsKVP = getMapsAsKVP (inputs, cgiContentLength, 0);
-  char *dataOutputsKVP = getMapsAsKVP (outputs, cgiContentLength, 1);
+  // The required size for the dataInputsKVP and dataOutputsKVP buffers
+  // may exceed cgiContentLength, hence a 2 kb extension. However, a 
+  // better solution would be to have getMapsAsKVP() determine the required
+  // buffer size before allocating memory.	
+  char *dataInputsKVP = getMapsAsKVP (inputs, cgiContentLength + 2048, 0);
+  char *dataOutputsKVP = getMapsAsKVP (outputs, cgiContentLength + 2048, 1);
 #ifdef DEBUG
   fprintf (stderr, "DATAINPUTSKVP %s\n", dataInputsKVP);
