edit: $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Libraries.LCA_RESTRICTED/Initializers.Generated.cs;C480993
File: Initializers.Generated.cs
===================================================================
--- $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Libraries.LCA_RESTRICTED/Initializers.Generated.cs;C480993  (server)    7/1/2008 4:37 PM
+++ Shelved Change: $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Libraries.LCA_RESTRICTED/Initializers.Generated.cs;StringGsubWithStringPatternAndBlock
@@ -3931,6 +3931,7 @@
             
             module.DefineLibraryMethod("gsub", 0x29, new System.Delegate[] {
                 new System.Func<System.Scripting.Runtime.CodeContext, Ruby.Builtins.MutableString, Ruby.Runtime.BlockParam, Ruby.Builtins.RubyRegex, System.Object>(Ruby.Builtins.MutableStringOps.BlockReplaceAll),
+                new System.Func<System.Scripting.Runtime.CodeContext, Ruby.Builtins.MutableString, Ruby.Runtime.BlockParam, Ruby.Builtins.MutableString, System.Object>(Ruby.Builtins.MutableStringOps.BlockReplaceAll),
                 new System.Func<System.Scripting.Runtime.CodeContext, Ruby.Builtins.MutableString, Ruby.Builtins.RubyRegex, Ruby.Builtins.MutableString, Ruby.Builtins.MutableString>(Ruby.Builtins.MutableStringOps.ReplaceAll),
                 new System.Func<System.Scripting.Runtime.CodeContext, Ruby.Builtins.MutableString, System.Object, Ruby.Builtins.MutableString, Ruby.Builtins.MutableString>(Ruby.Builtins.MutableStringOps.ReplaceAll),
                 new System.Func<System.Scripting.Runtime.CodeContext, Ruby.Builtins.MutableString, Ruby.Builtins.RubyRegex, System.Object, Ruby.Builtins.MutableString>(Ruby.Builtins.MutableStringOps.ReplaceAll),
===================================================================
edit: $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Libraries.LCA_RESTRICTED/Builtins/MutableStringOps.cs;C485016
File: MutableStringOps.cs
===================================================================
--- $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Libraries.LCA_RESTRICTED/Builtins/MutableStringOps.cs;C485016  (server)    7/3/2008 3:34 PM
+++ Shelved Change: $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Libraries.LCA_RESTRICTED/Builtins/MutableStringOps.cs;StringGsubWithStringPatternAndBlock
@@ -1793,6 +1793,13 @@
             return BlockReplaceN(context, self, block, pattern, -1, true, out blockResult, out result) ? blockResult : result;
         }
 
+        [RubyMethod("gsub")]
+        public static object BlockReplaceAll(CodeContext/*!*/ context, MutableString/*!*/ self, [NotNull]BlockParam/*!*/ block, [NotNull]MutableString matchString) {
+            object blockResult;
+            MutableString result;
+            return BlockReplaceN(context, self, block, new RubyRegex(Regex.Escape(matchString.ToString()), RubyRegexOptions.NONE), -1, true, out blockResult, out result) ? blockResult : result;           
+        }
+
         [RubyMethod("sub")]
         public static MutableString ReplaceFirst(CodeContext/*!*/ context, MutableString/*!*/ self, [NotNull]RubyRegex/*!*/ pattern, [NotNull]MutableString/*!*/ replacement) {
             return ReplaceN(context, self, replacement, pattern, 1, true);
===================================================================
edit: $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Tests/Specs/core/string/.spec/gsub_excludes.txt;C485016
File: gsub_excludes.txt
===================================================================
--- $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Tests/Specs/core/string/.spec/gsub_excludes.txt;C485016  (server)    7/3/2008 4:07 PM
+++ Shelved Change: $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Tests/Specs/core/string/.spec/gsub_excludes.txt;StringGsubWithStringPatternAndBlock
@@ -1,4 +1,1 @@
-String#gsub with pattern and block sets $~ for access from the block
-String#gsub with pattern and block restores $~ after leaving the block
-String#gsub with pattern and block sets $~ to MatchData of last match and nil when there's none for access from outside
 String#gsub with pattern and block raises a RuntimeError if the string is modified while substituting
===================================================================
