@@ -1528,6 +1528,10 @@ private sealed class ClrOverloadInfo {
 
             if (type == typeof(object)) {
                 type = typeof(RubyObject);
+            }
+
+            if (type == typeof(string)) {
+                type = typeof(MutableString);
             }
 
             if (_structInfo != null) {
@@ -1549,8 +1553,8 @@ private sealed class ClrOverloadInfo {
 
             if ((ctor = GetConstructor(type, typeof(RubyContext))) != null) {
                 return Ast.New(ctor, AstUtils.Convert(args.MetaContext.Expression, typeof(RubyContext)));
-            }
-
+            }
+
             if ((ctor = GetConstructor(type)) != null) {
                 return Ast.New(ctor);
             }