diff --git a/src/bnetd/handle_wserv.cpp b/src/bnetd/handle_wserv.cpp
index 54d6e73..51cfe7f 100644
--- a/src/bnetd/handle_wserv.cpp
+++ b/src/bnetd/handle_wserv.cpp
@@ -88,7 +88,6 @@ namespace pvpgn
 		{
 			char temp[MAX_IRC_MESSAGE_LEN];
 			t_clienttag clienttag;
-			char *filestring;
 			char const *ftphostname;
 			char const *ftpusername;
 			char const *ftppassword;
@@ -104,22 +103,28 @@ namespace pvpgn
 			 *  :[servername] 606 [username] :[ftpserveraddr] [ftpusername] [ftppaswd] [path] [file.rtp] [newversion] [SKU] REQ
 			 */
 
-			if (numparams >= 2) {
+			if (numparams >= 2)
+			{
 				clienttag = tag_sku_to_uint(std::atoi(params[0]));
 
 				if (clienttag != CLIENTTAG_WWOL_UINT)
 					conn_set_clienttag(conn, clienttag);
 
-				if (filestring = autoupdate_check(ARCHTAG_WINX86_UINT, clienttag, TAG_UNKNOWN_UINT, params[1], params[0])) {
+				const char* const filestring = autoupdate_check(ARCHTAG_WINX86_UINT, clienttag, TAG_UNKNOWN_UINT, params[1], params[0]);
+				if (filestring)
+				{
 					//:westwood-patch.ea.com update world96 lore3/1.003 65539_65536_6400.rtp 65539 6400 REQ
 					ftphostname = prefs_get_wol_autoupdate_serverhost();
 					ftpusername = prefs_get_wol_autoupdate_username();
 					ftppassword = prefs_get_wol_autoupdate_password();
 					std::snprintf(temp, sizeof(temp), ":%s %s %s %s 131075 %s REQ", ftphostname, ftpusername, ftppassword, filestring, params[0]);
 					irc_send(conn, RPL_UPDATE_FTP, temp);
+					xfree((void*)filestring);
 				}
 				else
+				{
 					irc_send(conn, RPL_UPDATE_NONEX, ":Update record non-existant");
+				}
 			}
 			else
 				irc_send(conn, ERR_NEEDMOREPARAMS, "VERCHK :Not enough parameters");