diff --git a/src/sbbs3/con_out.cpp b/src/sbbs3/con_out.cpp
index 292dc00dbead45f6ad133eb8b30ca41bd4b67bcd..1045d2217684de71d3dc5f198e1c2a9a742f92ce 100644
--- a/src/sbbs3/con_out.cpp
+++ b/src/sbbs3/con_out.cpp
@@ -775,7 +775,7 @@ void sbbs_t::inc_row(int count)
 	}
 }
 
-void sbbs_t::center(const char *instr, unsigned int columns)
+void sbbs_t::center(const char *instr, bool msg, unsigned int columns)
 {
 	char str[256];
 	size_t len;
@@ -789,7 +789,10 @@ void sbbs_t::center(const char *instr, unsigned int columns)
 	carriage_return();
 	if(len < columns)
 		cursor_right((columns - len) / 2);
-	bputs(str);
+	if(msg)
+		putmsg(str, P_NONE);
+	else
+		bputs(str);
 	newline();
 }
 
diff --git a/src/sbbs3/putmsg.cpp b/src/sbbs3/putmsg.cpp
index f834b9ca0f03cfbdc7f676ec05ce39910c5224e8..f50be4a478c1b65d79fc9e823141a9bca9cc2743 100644
--- a/src/sbbs3/putmsg.cpp
+++ b/src/sbbs3/putmsg.cpp
@@ -421,7 +421,7 @@ char sbbs_t::putmsgfrag(const char* buf, long& mode, long org_cols, JSObject* ob
 						tmp2[i++] = str[l++];
 					tmp2[i] = 0;
 					truncsp(tmp2);
-					center(tmp2);
+					center(tmp2, /* msg: */true);
 					if(str[l] == '\r')
 						l++;
 					if(str[l] == '\n')
diff --git a/src/sbbs3/sbbs.h b/src/sbbs3/sbbs.h
index 642ae05219bdfb25e67c6c9f744ecdd0f9cad085..35ca5461d1c4845dbf00f9804f792be3e5367ed3 100644
--- a/src/sbbs3/sbbs.h
+++ b/src/sbbs3/sbbs.h
@@ -825,7 +825,7 @@ public:
 	int		outchar(enum unicode_codepoint, const char* cp437_fallback = NULL);
 	void	inc_row(int count);
 	void	inc_column(int count);
-	void	center(const char *str, unsigned int columns = 0);
+	void	center(const char *str, bool msg = false, unsigned int columns = 0);
 	void	wide(const char*);
 	void	clearscreen(long term);
 	void	clearline(void);