edit: $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Ruby/Builtins/RubyModule.cs;C942557
File: RubyModule.cs
===================================================================
--- $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Ruby/Builtins/RubyModule.cs;C942557  (server)    6/11/2009 6:31 PM
+++ Shelved Change: $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Ruby/Builtins/RubyModule.cs;FixNonPublicNested
@@ -414,10 +414,16 @@
             Context.RequiresClassHierarchyLock();
             Debug.Assert(_constants != null && _constants.Count == 0);
 
+            // TODO: Inherited generic overloads. We need a custom TypeGroup to do it right - part of the type group might be removed
+
             // TODO: protected types
-            // TODO: Inherited generic overloads. We need a custom TypeGroup to do it right - part of the type group might be removed
+            var bindingFlags = BindingFlags.Public | BindingFlags.DeclaredOnly;
+            if (Context.DomainManager.Configuration.PrivateBinding) {
+                bindingFlags |= BindingFlags.NonPublic;
+            }
+
             // if the constant is redefined/removed from the base class. This is similar to method overload inheritance.
-            Type[] types = _typeTracker.Type.GetNestedTypes(BindingFlags.Public | BindingFlags.DeclaredOnly);
+            Type[] types = _typeTracker.Type.GetNestedTypes(bindingFlags);
             var trackers = new List<TypeTracker>();
             var names = new List<string>();
             foreach (var type in types) {
===================================================================
