diff --git a/fteqtv/parse.c b/fteqtv/parse.c
index d27f50b8d..e074ea4a7 100644
--- a/fteqtv/parse.c
+++ b/fteqtv/parse.c
@@ -168,17 +168,6 @@ void SendBufferToViewer(viewer_t *v, const char *buffer, int length, qboolean re
 
 void Multicast(sv_t *tv, char *buffer, int length, int to, unsigned int playermask)
 {
-/*
-#define dem_cmd			0	//shouldn't be present
-#define dem_read		1	//intended for the proxy, equivelent to dem_all :\
-#define dem_set			2	//keeps the playerinfo packets in sync, present once, at start, with specific parameters. Ignored.
-#define dem_multiple	3	//send to multiple specific players if tracking - basically team_prints.
-#define	dem_single		4	//send to a single player, sprint, centerprint, etc
-#define dem_stats		5	//overkill... same as single
-#define dem_all			6	//broadcast to all
-*/
-
-
 	viewer_t *v;
 	switch(to)
 	{
@@ -204,6 +193,14 @@ void Multicast(sv_t *tv, char *buffer, int length, int to, unsigned int playerma
 		break;
 	}
 }
+void Broadcast(cluster_t *cluster, char *buffer, int length)
+{
+	viewer_t *v;
+	for (v = cluster->viewers; v; v = v->next)
+	{
+		SendBufferToViewer(v, buffer, length, true);
+	}
+}
 
 static void ParseServerData(sv_t *tv, netmsg_t *m, int to, unsigned int playermask)
 {
diff --git a/fteqtv/qtv.h b/fteqtv/qtv.h
index fc01321ee..1f1b299bd 100644
--- a/fteqtv/qtv.h
+++ b/fteqtv/qtv.h
@@ -71,6 +71,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 	#include <sys/time.h>
 	#include <sys/types.h>
 	#include <sys/socket.h>
+	#include <arpa/inet.h>
 	#include <netdb.h>
 	#include <stdarg.h>
 	#include <stdlib.h>
@@ -297,7 +298,7 @@ typedef struct {
 	unsigned short leafs[MAX_ENTITY_LEAFS];
 } entity_t;
 
-typedef struct sv_s {
+struct sv_s {
 	netadr_t serveraddress;
 
 	unsigned char buffer[MAX_PROXY_BUFFER];	//this doesn't cycle.
@@ -364,9 +365,9 @@ typedef struct sv_s {
 
 	//options:
 	char server[MAX_QPATH];
-} sv_t;
+};
 
-typedef struct cluster_s {
+struct cluster_s {
 	SOCKET qwdsocket;	//udp + quakeworld protocols
 
 	char commandinput[512];
@@ -393,9 +394,9 @@ typedef struct cluster_s {
 	int maxviewers;
 	int maxproxies;
 
-	boolean wanttoexit;
+	qboolean wanttoexit;
 
-} cluster_t;
+};
 
 
 
@@ -578,6 +579,7 @@ void WriteString(netmsg_t *b, const char *str);
 void WriteData(netmsg_t *b, const char *data, int length);
 
 void Multicast(sv_t *tv, char *buffer, int length, int to, unsigned int playermask);
+void Broadcast(cluster_t *cluster, char *buffer, int length);
 void ParseMessage(sv_t *tv, char *buffer, int length, int to, int mask);
 void BuildServerData(sv_t *tv, netmsg_t *msg, qboolean mvd, int servercount);
 SOCKET QW_InitUDPSocket(int port);
diff --git a/fteqtv/qw.c b/fteqtv/qw.c
index a73d418de..a5dc30b03 100644
--- a/fteqtv/qw.c
+++ b/fteqtv/qw.c
@@ -1037,7 +1037,7 @@ void PMove(viewer_t *v, usercmd_t *cmd)
 		v->origin[i] += (cmd->forwardmove*fwd[i] + cmd->sidemove*rgt[i] + cmd->upmove*up[i])*(cmd->msec/1000.0f);
 }
 
-void QTV_Say(sv_t *qtv, viewer_t *v, char *message)
+void QTV_Say(cluster_t *cluster, viewer_t *v, char *message)
 {
 	char buf[1024];
 	netmsg_t msg;
@@ -1054,7 +1054,7 @@ void QTV_Say(sv_t *qtv, viewer_t *v, char *message)
 	WriteString2(&msg, message);
 	WriteString(&msg, "\n");
 
-	Multicast(qtv, msg.data, msg.cursize, dem_all, (unsigned int)-1);
+	Broadcast(cluster, msg.data, msg.cursize);
 }
 
 viewer_t *QW_IsOn(cluster_t *cluster, char *name)
@@ -1089,8 +1089,8 @@ void QW_PrintfToViewer(viewer_t *v, char *format, ...)
 	SendBufferToViewer(v, buf, strlen(buf)+1, true);
 }
 
-static const filename_t ConnectionlessModelList[] = {"", "maps/start.bsp", "progs/player.mdl", ""};
-static const filename_t ConnectionlessSoundList[] = {"", ""};
+static const filename_t ConnectionlessModelList[] = {{""}, {"maps/start.bsp"}, {"progs/player.mdl"}, {""}};
+static const filename_t ConnectionlessSoundList[] = {{""}, {""}};
 
 void Menu_Enter(cluster_t *cluster, viewer_t *viewer, int buttonnum);
 
@@ -1245,9 +1245,9 @@ void ParseQWC(cluster_t *cluster, sv_t *qtv, viewer_t *v, netmsg_t *m)
 			{
 			}
 			else if (!strncmp(buf, "say \"", 5) && !cluster->notalking)
-				QTV_Say(qtv, v, buf+5);
+				QTV_Say(cluster, v, buf+5);
 			else if (!strncmp(buf, "say ", 4) && !cluster->notalking)
-				QTV_Say(qtv, v, buf+4);
+				QTV_Say(cluster, v, buf+4);
 
 			else if (!strncmp(buf, "servers", 7))
 			{
diff --git a/fteqtv/source.c b/fteqtv/source.c
index 821e7e6ee..1295c5b9f 100644
--- a/fteqtv/source.c
+++ b/fteqtv/source.c
@@ -1550,4 +1550,5 @@ void Sys_Printf(cluster_t *cluster, char *fmt, ...)
 	va_end (argptr);
 
 	printf("%s", string);
-}
\ No newline at end of file
+}
+