--- request.c-2.2.4	2007-06-14 06:47:44.850623600 -0400
+++ request.c	2007-06-13 21:34:01.659559100 -0400
@@ -931,12 +931,20 @@
 #ifdef CASE_BLIND_FILESYSTEM
                 && (filename_len <= canonical_len)
 #endif
-                && ((opts.opts & (OPT_SYM_OWNER | OPT_SYM_LINKS)) == OPT_SYM_LINKS))
+                && (opts.opts & OPT_SYM_LINKS) )
             {
-
-                thisinfo.filetype = APR_DIR;
-                ++seg;
-                continue;
+                if ((r->path_info && *r->path_info) || r->finfo.filetype == APR_DIR)
+                {
+                    thisinfo.filetype = APR_DIR;
+                    ++seg;
+                    continue;
+                }
+                else if (r->finfo.filetype == APR_REG)
+                {
+                    thisinfo.filetype = APR_REG;
+                    ++seg;
+                    break;
+                }
             }
 
             /* We choose apr_stat with flag APR_FINFO_LINK here, rather that
