diff --git a/src/xercesc/util/regx/RegularExpression.cpp b/src/xercesc/util/regx/RegularExpression.cpp
index 1d2f2f7a2c61e87753a130ad3dc8da0c77360ce0..f8f5123e731fa5804f7c4d91268ae99191ce8df2 100644
--- a/src/xercesc/util/regx/RegularExpression.cpp
+++ b/src/xercesc/util/regx/RegularExpression.cpp
@@ -56,6 +56,9 @@
 
 /*
  * $Log$
+ * Revision 1.3  2002/10/15 18:56:02  knoaman
+ * [Bug 13604] while loop never terminates.
+ *
  * Revision 1.2  2002/03/18 19:29:53  knoaman
  * Change constant names to eliminate possible conflict with user defined ones.
  *
@@ -693,13 +696,13 @@ int RegularExpression::match(Context* const context, const Op* const operations
 		case Op::O_ANCHOR:
 			if (!matchAnchor(context, tmpOp->getData(), offset))
 				return -1;
-			tmpOp->getNextOp();
+			tmpOp = tmpOp->getNextOp();
 			break;
 		case Op::O_BACKREFERENCE:
 			if (!matchBackReference(context, tmpOp->getData(), offset,
 									direction, ignoreCase))
 				return -1;
-			tmpOp->getNextOp();
+			tmpOp = tmpOp->getNextOp();
 			break;
 		case Op::O_STRING:
 			if (!matchString(context, tmpOp->getLiteral(), offset, direction,