Index: win32/win32.c =================================================================== --- win32/win32.c (revision 18300) +++ win32/win32.c (working copy) @@ -1635,15 +1635,7 @@ long rb_w32_telldir(DIR *dirp) { - long loc = 0; char *p = dirp->curr; - - rb_w32_rewinddir(dirp); - - while (p != dirp->curr) { - move_to_next_entry(dirp); loc++; - } - - return loc; + return dirp->loc; } // @@ -1668,6 +1660,7 @@ rb_w32_rewinddir(DIR *dirp) { dirp->curr = dirp->start; + dirp->loc = 0; } //