diff --git a/src/xercesc/util/NetAccessors/Socket/UnixHTTPURLInputStream.cpp b/src/xercesc/util/NetAccessors/Socket/UnixHTTPURLInputStream.cpp
index 1c6c992c8696815858505deb8046d79cffd427fb..f2da962b9f917af6b8224ed9c47261a4c037d246 100644
--- a/src/xercesc/util/NetAccessors/Socket/UnixHTTPURLInputStream.cpp
+++ b/src/xercesc/util/NetAccessors/Socket/UnixHTTPURLInputStream.cpp
@@ -206,6 +206,10 @@ UnixHTTPURLInputStream::UnixHTTPURLInputStream(const XMLURL& urlSource, const XM
             XMLCh *newURLString = findHeader("Location");
             ArrayJanitor<XMLCh> janNewURLString(newURLString, memoryManager);
 
+            if(newURLString == 0 || *newURLString == 0) {
+                ThrowXMLwithMemMgr1(NetAccessorException, XMLExcepts::File_CouldNotOpenFile, url.getURLText(), memoryManager);
+            }
+
             XMLURL newURL(memoryManager);
             newURL.setURL(url, newURLString);
             if(newURL.getProtocol() != XMLURL::HTTP) {
diff --git a/src/xercesc/util/NetAccessors/WinSock/BinHTTPURLInputStream.cpp b/src/xercesc/util/NetAccessors/WinSock/BinHTTPURLInputStream.cpp
index 8d9ab44450049b215b9804fae138ef939c293f7e..00c2f59688698610e70434c7cfa4d3afd7097697 100644
--- a/src/xercesc/util/NetAccessors/WinSock/BinHTTPURLInputStream.cpp
+++ b/src/xercesc/util/NetAccessors/WinSock/BinHTTPURLInputStream.cpp
@@ -426,6 +426,10 @@ BinHTTPURLInputStream::BinHTTPURLInputStream(const XMLURL& urlSource, const XMLN
             XMLCh *newURLString = findHeader("Location");
             ArrayJanitor<XMLCh> janNewURLString(newURLString, memoryManager);
 
+            if(newURLString == 0 || *newURLString == 0) {
+                ThrowXMLwithMemMgr1(NetAccessorException, XMLExcepts::File_CouldNotOpenFile, url.getURLText(), memoryManager);
+            }
+
             XMLURL newURL(memoryManager);
             newURL.setURL(url, newURLString);
             if(newURL.getProtocol() != XMLURL::HTTP) {