diff --git a/src/sbbs3/js_global.c b/src/sbbs3/js_global.c
index f806bf268605e9068fc016bff9729862a4cd5309..a97b3f6c2d161ab9dbbe9d5c04ac7f3f16a0b0c7 100644
--- a/src/sbbs3/js_global.c
+++ b/src/sbbs3/js_global.c
@@ -3174,6 +3174,32 @@ js_fdate(JSContext *cx, uintN argc, jsval *arglist)
 	return(JS_TRUE);
 }
 
+static JSBool
+js_fcdate(JSContext *cx, uintN argc, jsval *arglist)
+{
+	jsval *argv=JS_ARGV(cx, arglist);
+	char*		p;
+	time_t		fd;
+	jsrefcount	rc;
+
+	JS_SET_RVAL(cx, arglist, JSVAL_VOID);
+
+	if(argc==0 || JSVAL_IS_VOID(argv[0]))
+		return(JS_TRUE);
+
+	JSVALUE_TO_MSTRING(cx, argv[0], p, NULL)
+	HANDLE_PENDING(cx);
+	if(p==NULL) 
+		return(JS_TRUE);
+
+	rc=JS_SUSPENDREQUEST(cx);
+	fd=fcdate(p);
+	free(p);
+	JS_RESUMEREQUEST(cx, rc);
+	JS_SET_RVAL(cx, arglist,DOUBLE_TO_JSVAL((double)fd));
+	return(JS_TRUE);
+}
+
 static JSBool
 js_utime(JSContext *cx, uintN argc, jsval *arglist)
 {
@@ -4143,6 +4169,10 @@ static jsSyncMethodSpec js_global_functions[] = {
 	,JSDOCSTR("get a file's last modified date/time (in time_t format)")
 	,310
 	},
+	{"file_cdate",		js_fcdate,			1,	JSTYPE_NUMBER,	JSDOCSTR("path/filename")
+	,JSDOCSTR("get a file's creation date/time (in time_t format)")
+	,317
+	},
 	{"file_size",		js_flength,			1,	JSTYPE_NUMBER,	JSDOCSTR("path/filename")
 	,JSDOCSTR("get a file's length (in bytes)")
 	,310