delete: $/Dev10/feature/vs_langs01/Merlin/External.LCA_RESTRICTED/Languages/IronRuby/mspec/ironruby-tags/core/method;C840659
edit: $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Ruby/Builtins/RubyMethod.cs;C857486
File: RubyMethod.cs
===================================================================
--- $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Ruby/Builtins/RubyMethod.cs;C857486  (server)    5/5/2009 11:36 AM
+++ Shelved Change: $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Ruby/Builtins/RubyMethod.cs;ArityFixes
@@ -74,7 +74,9 @@
                     return site.Target(site, this, unsplat);
                 });
 
-                _procDispatcher = new BlockDispatcherUnsplatN(block, 0, BlockSignatureAttributes.HasUnsplatParameter);
+                _procDispatcher = new BlockDispatcherUnsplatN(block, 0, 
+                    BlockDispatcher.MakeAttributes(BlockSignatureAttributes.HasUnsplatParameter, _info.GetArity())
+                );
             }
 
             return new Proc(ProcKind.Block, scope.SelfObject, scope, _procDispatcher);
===================================================================
edit: $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Ruby/Compiler/Ast/LeftValues/CompoundLeftValue.cs;C840659
File: CompoundLeftValue.cs
===================================================================
--- $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Ruby/Compiler/Ast/LeftValues/CompoundLeftValue.cs;C840659  (server)    5/5/2009 1:30 PM
+++ Shelved Change: $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Ruby/Compiler/Ast/LeftValues/CompoundLeftValue.cs;ArityFixes
@@ -226,7 +226,7 @@
                 }
             }
 
-            return result | (BlockSignatureAttributes)(arity << 2);
+            return BlockDispatcher.MakeAttributes(result, arity);
         }
 
         public override string/*!*/ ToString() {
===================================================================
edit: $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Ruby/Runtime/RubyOps.cs;C853491
File: RubyOps.cs
===================================================================
--- $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Ruby/Runtime/RubyOps.cs;C853491  (server)    5/5/2009 1:23 PM
+++ Shelved Change: $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Ruby/Runtime/RubyOps.cs;ArityFixes
@@ -217,11 +217,11 @@
 
         [Emitted]
         public static Proc/*!*/ DefineBlock(RubyScope/*!*/ scope, RuntimeFlowControl/*!*/ runtimeFlowControl, object self, Delegate/*!*/ clrMethod,
-            int parameterCount, BlockSignatureAttributes attributes) {
+            int parameterCount, BlockSignatureAttributes attributesAndArity) {
             Assert.NotNull(scope, clrMethod);
 
             // closes block over self and context
-            BlockDispatcher dispatcher = BlockDispatcher.Create(clrMethod, parameterCount, attributes);
+            BlockDispatcher dispatcher = BlockDispatcher.Create(clrMethod, parameterCount, attributesAndArity);
             Proc result = new Proc(ProcKind.Block, self, scope, dispatcher);
 
             result.Owner = runtimeFlowControl;
===================================================================
edit: $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Ruby/Runtime/Calls/RubyMethodInfo.cs;C853491
File: RubyMethodInfo.cs
===================================================================
--- $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Ruby/Runtime/Calls/RubyMethodInfo.cs;C853491  (server)    5/5/2009 1:47 PM
+++ Shelved Change: $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Ruby/Runtime/Calls/RubyMethodInfo.cs;ArityFixes
@@ -88,7 +88,7 @@
         }
 
         public override int GetArity() {
-            if (_optionalParamCount > 0) {
+            if (_hasUnsplatParameter || _optionalParamCount > 0) {
                 return -_mandatoryParamCount - 1;
             } else {
                 return _mandatoryParamCount;
===================================================================
