diff -r 8c7c9ff0f0ca ircd/m_welcome.c
--- /dev/null
+++ b/ircd/m_welcome.c
-@@ -0,0 +1,296 @@
+@@ -0,0 +1,292 @@
+/*
+ * IRC - Internet Relay Chat, ircd/m_welcome.c
+ * Copyright (C) 1990 Jarkko Oikarinen and
+ flags |= WELCOME_LOCAL;
+ }
+
-+ /* TODO: disallow global announcement from oper?
-+ * as PRIVMSG/NOTICE to $* is not allowed either by the ircd
-+ * when PRIV for that is added, use that here? PRIV_BROADCAST or something
-+ *
-+ * change prefix to $ ?
-+ */
+ /* check for anounce prefix */
-+ if (*name == '!') {
++ if (*name == '$') {
+ name++;
-+ flags |= WELCOME_ANNOUNCE;
++ /* only allow announce by oper for local welcome */
++ if (flags & WELCOME_LOCAL)
++ flags |= WELCOME_ANNOUNCE;
+ }
+
+ /* check for insert prefix */
+ }
+
+ /* check for anounce prefix */
-+ if (*name == '!') {
++ if (*name == '$') {
+ name++;
+ flags |= WELCOME_ANNOUNCE;
+ }
+ assert(NULL != cptr);
+
+ sendcmdto_serv_butone(sptr, CMD_WELCOME, cptr, "* %s%s%d %Tu %s :%s",
-+ (flags & WELCOME_ANNOUNCE) ? "!" : "", (flags & WELCOME_INSERT) ? "+" : "",
++ (flags & WELCOME_ANNOUNCE) ? "$" : "", (flags & WELCOME_INSERT) ? "+" : "",
+ nameint, timestamp, who, text);
+
+ return 0;