--- samba-3.0.23d/source/smbd/dir.c	2006-11-14 23:42:12.000000000 +0900
+++ samba-3.0.23d.osstech/source/smbd/dir.c	2006-12-30 12:35:22.109501154 +0900
@@ -1010,6 +1010,15 @@ BOOL is_visible_file(connection_struct *
 		if (asprintf(&entry, "%s/%s", dir_path, name) == -1) {
 			return False;
 		}
+
+		/* If it's a dfs symlink, ignore _hide xxxx_ options */
+		if (lp_host_msdfs() &&
+		    lp_msdfs_root(SNUM(conn)) &&
+		    is_msdfs_link(NULL, conn, entry, NULL, NULL, NULL)) {
+			SAFE_FREE(entry);
+			return True;
+		}
+
 		/* Honour _hide unreadable_ option */
 		if (hide_unreadable && !user_can_read_file(conn, entry, pst)) {
 			DEBUG(10,("is_visible_file: file %s is unreadable.\n", entry ));
