diff --git a/src/xercesc/util/regx/RegularExpression.cpp b/src/xercesc/util/regx/RegularExpression.cpp
index 5e3159f637ce62f7784e963a23a7deef11b8d3ec..8b48d4f38158710a63365b111c604fa32dd65fa7 100644
--- a/src/xercesc/util/regx/RegularExpression.cpp
+++ b/src/xercesc/util/regx/RegularExpression.cpp
@@ -1446,14 +1446,32 @@ Op* RegularExpression::compile(const Token* const token, Op* const next,
 
     switch(tokenType) {
     case Token::T_DOT:
+        ret = fOpFactory.createDotOp();
+        ret->setNextOp(next);
+        break;
     case Token::T_CHAR:
+        ret = fOpFactory.createCharOp(token->getChar());
+        ret->setNextOp(next);
+        break;
     case Token::T_ANCHOR:
+        ret = fOpFactory.createAnchorOp(token->getChar());
+        ret->setNextOp(next);
+        break;
     case Token::T_RANGE:
     case Token::T_NRANGE:
+        ret = fOpFactory.createRangeOp(token);
+        ret->setNextOp(next);
+        break;
     case Token::T_STRING:
+        ret = fOpFactory.createStringOp(token->getString());
+        ret->setNextOp(next);
+        break;
     case Token::T_BACKREFERENCE:
+        ret = fOpFactory.createBackReferenceOp(token->getReferenceNo());
+        ret->setNextOp(next);
+        break;
     case Token::T_EMPTY:
-        ret = compileSingle(token, next, tokenType);
+        ret = next;
         break;
     case Token::T_CONCAT:
         ret = compileConcat(token, next, reverse);
diff --git a/src/xercesc/util/regx/RegularExpression.hpp b/src/xercesc/util/regx/RegularExpression.hpp
index 8ae446be30a58e93ef2fb2427efedc193a33a196..6133ebd810388840ff61559c2ccdc7acaa7d9f9c 100644
--- a/src/xercesc/util/regx/RegularExpression.hpp
+++ b/src/xercesc/util/regx/RegularExpression.hpp
@@ -565,8 +565,6 @@ protected:
     /**
       *    Helper methods used by compile
       */
-    Op* compileSingle(const Token* const token, Op* const next,
-                      const Token::tokType tkType);
     Op* compileUnion(const Token* const token, Op* const next,
                      const bool reverse);
     Op* compileParenthesis(const Token* const token, Op* const next,
@@ -628,45 +626,6 @@ protected:
       return (options & flag) == flag;
   }
 
-  inline Op* RegularExpression::compileSingle(const Token* const token,
-                                              Op* const next,
-                                              const Token::tokType tkType) {
-
-      Op* ret = 0;
-
-      switch (tkType) {
-      case Token::T_DOT:
-          ret = fOpFactory.createDotOp();
-          break;
-      case Token::T_CHAR:
-          ret = fOpFactory.createCharOp(token->getChar());
-          break;
-      case Token::T_ANCHOR:
-          ret = fOpFactory.createAnchorOp(token->getChar());
-          break;
-      case Token::T_RANGE:
-      case Token::T_NRANGE:
-          ret = fOpFactory.createRangeOp(token);
-          break;
-      case Token::T_EMPTY:
-          ret = next;
-          break;
-      case Token::T_STRING:
-          ret = fOpFactory.createStringOp(token->getString());
-          break;
-      case Token::T_BACKREFERENCE:
-          ret = fOpFactory.createBackReferenceOp(token->getReferenceNo());
-          break;
-      default:
-          break;
-      }
-
-      if (tkType != Token::T_EMPTY)
-          ret->setNextOp(next);
-
-      return ret;
-  }
-
 
   inline Op* RegularExpression::compileUnion(const Token* const token,
                                              Op* const next,