diff --git a/xtrn/ddfilelister/ddfilelister.js b/xtrn/ddfilelister/ddfilelister.js
index ad3377ff4275d89beabc40e779aab545c0815f2b..b4106cc5ccfc691e6a9b8a9c7260a4b912dcedc8 100644
--- a/xtrn/ddfilelister/ddfilelister.js
+++ b/xtrn/ddfilelister/ddfilelister.js
@@ -144,6 +144,9 @@
  *                              Check to see if cost is in the file metadata before using it.
  *                              Also, when getting a file's full path, ensure the filename is
  *                              passed to get_path() (as described in the JS documentation)
+ * 2024-11-24 Eric Oulashin     Version 2.25b
+ *                              When editing file information, check whether cost and times_downloaded
+ *                              exist in the metadata before accessing them
  */
 
 "use strict";
@@ -185,8 +188,8 @@ var gAvatar = load({}, "avatar_lib.js");
 
 
 // Version information
-var LISTER_VERSION = "2.25a";
-var LISTER_DATE = "2024-11-12";
+var LISTER_VERSION = "2.25b";
+var LISTER_DATE = "2024-11-24";
 
 
 ///////////////////////////////////////////////////////////////////////////////
@@ -2058,14 +2061,16 @@ function editFileInfo(pFileList, pFileListMenu)
 		promptText = bbs.text(bbs.text.EditCreditValue);
 		editWidth = console.screen_columns - console.strlen(promptText) - 1;
 		console.mnemonics(promptText);
-		newMetadata.cost = parseInt(console.getstr(fileMetadata.cost.toString(), editWidth, K_EDIT|K_LINE|K_NUMBER|K_NOSPIN));
+		var costStr = (fileMetadata.hasOwnProperty("cost") ? fileMetadata.cost.toString() : "0");
+		newMetadata.cost = parseInt(console.getstr(costStr, editWidth, K_EDIT|K_LINE|K_NUMBER|K_NOSPIN));
 		if (console.aborted)
 			return retObj;
 		// # times downloaded
 		promptText = bbs.text(bbs.text.EditTimesDownloaded);
 		editWidth = console.screen_columns - console.strlen(promptText) - 1;
 		console.mnemonics(promptText);
-		newMetadata.times_downloaded = console.getstr(fileMetadata.times_downloaded.toString(), editWidth, K_EDIT|K_LINE|K_NUMBER|K_NOSPIN);
+		var timesDownloadedStr = (fileMetadata.hasOwnProperty("times_downloaded") ? fileMetadata.times_downloaded.toString() : "0");
+		newMetadata.times_downloaded = parseInt(console.getstr(timesDownloadedStr, editWidth, K_EDIT|K_LINE|K_NUMBER|K_NOSPIN));
 		if (console.aborted)
 			return retObj;
 		// Current new-scan date/time
diff --git a/xtrn/ddfilelister/readme.txt b/xtrn/ddfilelister/readme.txt
index 3590c16d996d1db56b4ef3a8a4803494e5afcf50..2a842a41b966ce5db774b57373e90597c335b57a 100644
--- a/xtrn/ddfilelister/readme.txt
+++ b/xtrn/ddfilelister/readme.txt
@@ -1,6 +1,6 @@
                         Digital Distortion File Lister
-                                 Version 2.25a
-                           Release date: 2024-11-12
+                                 Version 2.25b
+                           Release date: 2024-11-24
 
                                      by
 
diff --git a/xtrn/ddfilelister/revision_history.txt b/xtrn/ddfilelister/revision_history.txt
index 50d83e0baefd77621b8eb5838038fc162c201f05..858957f96521aa0d564290e481b212ea305973a0 100644
--- a/xtrn/ddfilelister/revision_history.txt
+++ b/xtrn/ddfilelister/revision_history.txt
@@ -5,6 +5,9 @@ Revision History (change log)
 =============================
 Version  Date         Description
 -------  ----         -----------
+2.25b    2024-11-24   When editing file information, check whether cost and
+                      times_downloaded exist in the metadata before accessing
+                      them
 2.25a    2024-11-12   Check whether cost is in the file metadata before using it.
                       Also, an internal change: When getting a file's full path,
                       ensure its filename is passed to get_path(), as described