Index: StringBuilder.cs
===================================================================
--- StringBuilder.cs	2005-03-21 05:21:36.000000000 +0300
+++ StringBuilder.cs	2005-06-10 11:44:15.475435224 +0400
@@ -293,12 +293,16 @@
 
 			// TODO: OPTIMIZE!
 			string replace = _str.Substring(startIndex, count).Replace(oldValue, newValue);
+			int replaceLength = replace.Length;
 
 			InternalEnsureCapacity (replace.Length + (_length - count));
 
+			String end = _str.Substring( startIndex + count, _length - startIndex - count );
+
 			String.InternalStrcpy (_str, startIndex, replace);
+			String.InternalStrcpy (_str, startIndex + replaceLength, end);
 			
-			_length = replace.Length + (_length - count);
+			_length = replaceLength + (_length - count);
 
 			return this;
 		}
