edit: $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Ruby/Builtins/Glob.cs;C538150
File: Glob.cs
===================================================================
--- $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Ruby/Builtins/Glob.cs;C538150  (server)    8/22/2008 4:57 PM
+++ Shelved Change: $/Dev10/feature/vs_langs01/Merlin/Main/Languages/Ruby/Ruby/Builtins/Glob.cs;DirFix
@@ -423,7 +423,7 @@
 
             private void TestPath(string path, int patternEnd, bool isLastPathSegment) {
                 if (!isLastPathSegment) {
-                    DoGlob(path, patternEnd);
+                    DoGlob(path, patternEnd, false);
                     return;
                 }
                 string pathName = path.Replace('\\', '/');
@@ -458,11 +458,11 @@
 
                 _stripTwo = (baseDirectory == ".");
 
-                DoGlob(baseDirectory, pos);
+                DoGlob(baseDirectory, pos, false);
                 return _result;
             }
 
-            internal void DoGlob(string/*!*/ baseDirectory, int position) {
+            internal void DoGlob(string/*!*/ baseDirectory, int position, bool isPreviousDoubleStar) {
                 if (!_pal.DirectoryExists(baseDirectory)) {
                     return;
                 }
@@ -484,8 +484,8 @@
 
                 MutableString mPattern = MutableString.Create(dirSegment);
                 bool doubleStar = dirSegment.Equals("**");
-                if (doubleStar) {
-                    DoGlob(baseDirectory, patternEnd);
+                if (doubleStar && !isPreviousDoubleStar) {
+                    DoGlob(baseDirectory, patternEnd, true);
                 }
 
                 string[] files = Directory.GetFileSystemEntries(baseDirectory);
@@ -494,7 +494,7 @@
                     if (FnMatch(mPattern, MutableString.Create(objectName), _flags)) {
                         TestPath(file, patternEnd, isLastPathSegment);
                         if (doubleStar) {
-                            DoGlob(file, position);
+                            DoGlob(file, position, true);
                         }
                     }
                 }
===================================================================
