diff --git a/src/sbbs3/js_bbs.cpp b/src/sbbs3/js_bbs.cpp
index dbad44a6c4991a778f3fabd92cc876d4b6eeb922..0d87a18b26ffad3cc2b5316deb7d15151427745b 100644
--- a/src/sbbs3/js_bbs.cpp
+++ b/src/sbbs3/js_bbs.cpp
@@ -1951,6 +1951,7 @@ js_logoff(JSContext *cx, uintN argc, jsval *arglist)
 			sbbs->exec_bin(sbbs->cfg.logoff_mod,&sbbs->main_csi);
 		sbbs->user_event(EVENT_LOGOFF);
 		sbbs->menu("logoff");
+		sbbs->sync();
 		sbbs->hangup();
 	}
 	JS_RESUMEREQUEST(cx, rc);
diff --git a/src/sbbs3/sbbs.h b/src/sbbs3/sbbs.h
index 8df1d33e95b725174e7ef8fc05ca5a95413a25cd..d3a35819a9a847460e7cc98635ebd873bff98d43 100644
--- a/src/sbbs3/sbbs.h
+++ b/src/sbbs3/sbbs.h
@@ -966,6 +966,7 @@ public:
 	user_t	nodesync_user{};
 	bool	nodesync_inside = false;
 	uint	count_nodes(bool self = true);
+	void	sync(bool clearline = false) { getnodedat(cfg.node_num, &thisnode, 0); nodesync(clearline); }
 
 	/* putnode.cpp */
 	int		putnodedat(uint number, node_t * node);