diff --git a/src/xercesc/util/TransService.cpp b/src/xercesc/util/TransService.cpp
index 94a6c147fc66380a93c30f9794da693701b25500..39b854616397adc275dd847ba4bc7ecb78308398 100644
--- a/src/xercesc/util/TransService.cpp
+++ b/src/xercesc/util/TransService.cpp
@@ -613,7 +613,7 @@ void TranscodeToStr::transcode(const XMLCh *in, XMLSize_t len, XMLTranscoder* tr
     XMLSize_t allocSize = len * sizeof(XMLCh);
     fString = (XMLByte*)fMemoryManager->allocate(allocSize);
 
-    XMLSize_t charsRead;
+    XMLSize_t charsRead = 0;
     XMLSize_t charsDone = 0;
 
     while(true) {
@@ -692,7 +692,7 @@ void TranscodeFromStr::transcode(const XMLByte *in, XMLSize_t length, XMLTransco
     ArrayJanitor<unsigned char> charSizes((unsigned char*)fMemoryManager->allocate(csSize * sizeof(unsigned char)),
                                           fMemoryManager);
 
-    XMLSize_t bytesRead;
+    XMLSize_t bytesRead = 0;
     XMLSize_t bytesDone = 0;
 
     while(true) {