diff --git a/xtrn/ddfilelister/ddfilelister.js b/xtrn/ddfilelister/ddfilelister.js
index 73cfe940df13592d39bf61e174df524848ba3f9f..838afbb726d2c78d09d4d177d4d56f69c3cebdf2 100644
--- a/xtrn/ddfilelister/ddfilelister.js
+++ b/xtrn/ddfilelister/ddfilelister.js
@@ -2173,18 +2173,21 @@ function createFileListMenu(pQuitKeys)
 	// Set up the menu's description width, colors, and format string
 	fileListMenu.SetItemWidthsColorsAndFormatStr();
 
+	fileListMenu.lastFileDirCode = "";
 	// Define the menu function for getting an item
 	fileListMenu.GetItem = function(pIdx) {
+		// In here, 'this' refers to the fileListMenu object
 		// If doing a file search, then update the header with the file library & directory
 		// name of the currently selected file (instead of displaying "Various"). This seems
 		// like a bit of a hack, but it works.
 		var allSameDir = (typeof(gFileList.allSameDir) === "boolean" ? gFileList.allSameDir : false);
-		if (isDoingFileSearch() && !allSameDir)
+		if (isDoingFileSearch() && !allSameDir && gFileList[pIdx].dirCode != this.lastFileDirCode)
 		{
 			var originalCurPos = console.getxy();
 			displayFileLibAndDirHeader(true, gFileList[pIdx].dirCode);
 			console.gotoxy(originalCurPos);
 		}
+		this.lastFileDirCode = gFileList[pIdx].dirCode;
 
 		var menuItemObj = this.MakeItemWithRetval(pIdx);
 		var filename = shortenFilename(gFileList[pIdx].name, this.filenameLen, true);
@@ -2202,7 +2205,6 @@ function createFileListMenu(pQuitKeys)
 		                          filename,
 								  getFileSizeStr(gFileList[pIdx].size, this.fileSizeLen),
 		                          desc.substr(0, this.shortDescLen));
-
 		return menuItemObj;
 	}