diff --git a/src/sbbs3/js_file.c b/src/sbbs3/js_file.c
index 2eb70361f91419890eb19e6b97ddcb9faed05e4d..0ce8177fc44c87c20f16915a332bb117a24320fa 100644
--- a/src/sbbs3/js_file.c
+++ b/src/sbbs3/js_file.c
@@ -44,6 +44,8 @@
 
 #ifdef JAVASCRIPT
 
+#include "jsdate.h"	/* Yes, I know this is a private header file */
+
 typedef struct
 {
 	FILE*	fp;
@@ -455,6 +457,8 @@ js_iniGetValue(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rva
 	jsval	dflt=argv[2];
 	private_t*	p;
 	JSObject*	array;
+	JSObject*	dflt_obj;
+	JSObject*	date_obj;
 
 	if((p=(private_t*)JS_GetPrivate(cx,obj))==NULL) {
 		JS_ReportError(cx,getprivate_failure,WHERE);
@@ -483,6 +487,16 @@ js_iniGetValue(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rva
 				,iniReadFloat(p->fp,section,key,*JSVAL_TO_DOUBLE(dflt)),rval);
 			break;
 		case JSVAL_OBJECT:
+			dflt_obj = JSVAL_TO_OBJECT(dflt);
+			if(js_DateIsValid(cx, dflt_obj)) {
+				date_obj = js_NewDateObjectMsec(cx
+					,(jsdouble)iniReadDateTime(p->fp,section,key
+						,(time_t)(js_DateGetMsecSinceEpoch(cx,dflt_obj)/1000.0))
+					*1000.0);
+				if(date_obj!=NULL)
+					*rval = OBJECT_TO_JSVAL(date_obj);
+				break;
+			}
 		    array = JS_NewArrayObject(cx, 0, NULL);
 			list=iniReadStringList(p->fp,section,key,",",JS_GetStringBytes(JS_ValueToString(cx,dflt)));
 			for(i=0;list && list[i];i++) {