diff --git a/src/xercesc/util/Transcoders/Iconv/IconvTransService.cpp b/src/xercesc/util/Transcoders/Iconv/IconvTransService.cpp
index 5c71301badb6a2d1748d86fc2f237e6a900b16ab..6496add47839145404db12e58f3f234b0c7cccfa 100644
--- a/src/xercesc/util/Transcoders/Iconv/IconvTransService.cpp
+++ b/src/xercesc/util/Transcoders/Iconv/IconvTransService.cpp
@@ -314,7 +314,9 @@ char* IconvLCPTranscoder::transcode(const XMLCh* const toTranscode)
         if (neededLen == -1)
         {
             delete [] allocatedArray;
-            return 0;
+            retVal = new char[1];
+            retVal[0] = 0;
+            return retVal;
         }
 
         retVal = new char[neededLen + 1];