diff --git a/src/xercesc/internal/DGXMLScanner.cpp b/src/xercesc/internal/DGXMLScanner.cpp
index 32fe034a6f98e728f5edd6ac3eeb171e91e4f94e..368b3eb06ee70f098b1b253500be957e1035fcde 100644
--- a/src/xercesc/internal/DGXMLScanner.cpp
+++ b/src/xercesc/internal/DGXMLScanner.cpp
@@ -2534,11 +2534,6 @@ bool DGXMLScanner::scanAttValue(  const   XMLAttDef* const    attDef
                     gotLeadingSurrogate = false;
                     continue;
                 }
-                else
-                {
-                    if (escaped && !fElemStack.isEmpty())
-                        fElemStack.setReferenceEscaped();
-                }
             }
             else if ((nextCh >= 0xD800) && (nextCh <= 0xDBFF))
             {
@@ -2905,6 +2900,11 @@ void DGXMLScanner::scanCharData(XMLBuffer& toUse)
                         gotLeadingSurrogate = false;
                         continue;
                     }
+                    else
+                    {
+                        if (escaped && !fElemStack.isEmpty())
+                            fElemStack.setReferenceEscaped();
+                    }
                 }
                 else if ((nextCh >= 0xD800) && (nextCh <= 0xDBFF))
                 {