edit: $/Dev10/feature/vs_langs01_s/Merlin/Main/Languages/Ruby/IronRuby.Tests/RubyTests.cs;C1661012
File: RubyTests.cs
===================================================================
--- $/Dev10/feature/vs_langs01_s/Merlin/Main/Languages/Ruby/IronRuby.Tests/RubyTests.cs;C1661012  (server)    3/11/2010 12:49 PM
+++ Shelved Change: $/Dev10/feature/vs_langs01_s/Merlin/Main/Languages/Ruby/IronRuby.Tests/RubyTests.cs;InvalidNames
@@ -471,6 +471,7 @@
                 ClrOverloadInheritance6,
                 ClrMethodEnumeration1,
                 ClrMethodEnumeration2,
+                ClrMethodEnumeration_InvalidNames1,
                 ClrIndexers1,
                 ClrGenericMethods1,
                 ClrGenericParametersInference1,
===================================================================
edit: $/Dev10/feature/vs_langs01_s/Merlin/Main/Languages/Ruby/IronRuby.Tests/Runtime/ClrTests.cs;C1643171
File: ClrTests.cs
===================================================================
--- $/Dev10/feature/vs_langs01_s/Merlin/Main/Languages/Ruby/IronRuby.Tests/Runtime/ClrTests.cs;C1643171  (server)    3/11/2010 12:50 PM
+++ Shelved Change: $/Dev10/feature/vs_langs01_s/Merlin/Main/Languages/Ruby/IronRuby.Tests/Runtime/ClrTests.cs;InvalidNames
@@ -479,6 +479,39 @@
 ");
         }
 
+        public class ClassWithGeneratedMembers1 : I1 {
+            private class OK {
+            }
+
+            // C# generates display class, anonymous type, anonymos methods and a static field:
+            private IEnumerable<int> GetInts() {
+                var t = new { a = 1, b = 2 };
+                Func<int> f = () => 1;
+                yield return f();
+                yield return t.a;
+                yield return Field;
+            }
+
+            private static int Field = 3;
+
+            int I1.f() { return 0; }
+        }
+
+        [Options(PrivateBinding = true)]
+        public void ClrMethodEnumeration_InvalidNames1() {
+            Context.ObjectClass.SetConstant("Foo", Context.GetClass(typeof(ClassWithGeneratedMembers1)));
+            TestOutput(@"
+puts Foo.constants
+puts Foo.singleton_methods(false)
+puts Foo.instance_methods(false)
+", @"
+OK
+field
+field=
+get_ints
+");
+        }
+
         private void AssertNoClrNames(object/*!*/ methods, string moduleName) {
             var array = (RubyArray)methods;
             int idx = array.FindIndex((name) => name is ClrName);
===================================================================
edit: $/Dev10/feature/vs_langs01_s/Merlin/Main/Languages/Ruby/Libraries.LCA_RESTRICTED/Builtins/KernelOps.cs;C1602122
File: KernelOps.cs
===================================================================
--- $/Dev10/feature/vs_langs01_s/Merlin/Main/Languages/Ruby/Libraries.LCA_RESTRICTED/Builtins/KernelOps.cs;C1602122  (server)    3/11/2010 1:00 PM
+++ Shelved Change: $/Dev10/feature/vs_langs01_s/Merlin/Main/Languages/Ruby/Libraries.LCA_RESTRICTED/Builtins/KernelOps.cs;InvalidNames
@@ -964,7 +964,9 @@
                 var result = new RubyArray();
                 if (foreignMembers.Count > 0) {
                     foreach (var name in foreignMembers) {
-                        result.Add(new ClrName(name));
+                        if (Tokenizer.IsMethodName(name, true)) {
+                            result.Add(new ClrName(name));
+                        }
                     }
                 }
                 return result;
===================================================================
edit: $/Dev10/feature/vs_langs01_s/Merlin/Main/Languages/Ruby/Libraries.LCA_RESTRICTED/Builtins/ModuleOps.cs;C1599184
File: ModuleOps.cs
===================================================================
--- $/Dev10/feature/vs_langs01_s/Merlin/Main/Languages/Ruby/Libraries.LCA_RESTRICTED/Builtins/ModuleOps.cs;C1599184  (server)    3/11/2010 1:01 PM
+++ Shelved Change: $/Dev10/feature/vs_langs01_s/Merlin/Main/Languages/Ruby/Libraries.LCA_RESTRICTED/Builtins/ModuleOps.cs;InvalidNames
@@ -750,7 +750,9 @@
                     }
 
                     if (!visited.ContainsKey(name)) {
-                        result.Add(self.Context.StringifyIdentifier(name));
+                        if (Tokenizer.IsConstantName(name, true)) {
+                            result.Add(self.Context.StringifyIdentifier(name));
+                        }
                         visited.Add(name, true);
                     }
                     return false;
@@ -885,10 +887,12 @@
             var result = new RubyArray();
             using (self.Context.ClassHierarchyLocker()) {
                 self.ForEachMember(inherited, attributes, foreignMembers, (name, module, member) => {
-                    if (member.IsInteropMember && (module.Restrictions & ModuleRestrictions.NoNameMapping) == 0 && RubyUtils.HasMangledName(name)) {
-                        result.Add(new ClrName(name));
-                    } else {
-                        result.Add(self.Context.StringifyIdentifier(name));
+                    if (Tokenizer.IsMethodName(name, true)) {
+                        if (member.IsInteropMember && (module.Restrictions & ModuleRestrictions.NoNameMapping) == 0 && RubyUtils.HasMangledName(name)) {
+                            result.Add(new ClrName(name));
+                        } else {
+                            result.Add(self.Context.StringifyIdentifier(name));
+                        }
                     }
                 });
             }
===================================================================
