- // Assure that no endless searching is done if a link points
- // to a parent directory
- const KUrl linkDestDir = item.linkDest();
- skipDir = linkDestDir.isParentOf(itemDir);
- }
-
- if (!skipDir) {
- pendingDirs.append(itemDir);
+ // Assure that no endless searching is done in directories that
+ // have already been iterated.
+ const KUrl linkDest(item.url(), item.linkDest());
+ if (!m_iteratedDirs.contains(linkDest.path())) {
+ pendingDirs.append(linkDest);
+ }
+ } else {
+ pendingDirs.append(item.url());