diff --git a/web/root/sajax-forum/body.xjs b/web/root/sajax-forum/body.xjs
index 973a57d956549fc19115df4a72d32c61592dc642..d6b7394072efde26d0167dc54300ec2372ade611 100644
--- a/web/root/sajax-forum/body.xjs
+++ b/web/root/sajax-forum/body.xjs
@@ -26,9 +26,10 @@ if((!msg_area.sub[sub_code.toLowerCase()].ismoderated) || (hdr.attr & MSG_VALIDA
 	}
 }
 msgbase.close();
+var html_sub_code_string="'"+html_encode(sub_code, true, false, false, false).replace(/'/,''')+"'";
 
 if(ANSI_formatted) {
-	writeln("<div class=\"ansi_toggle\"><a href=\"#\" onclick=\"load_html(this.parentNode.parentNode);return false\">HTML Mode</a></div>");
+	writeln("<div class=\"ansi_toggle\"><a href=\"#\" onclick=\"load_html(this.parentNode.parentNode, "+html_sub_code_string+");return false\">HTML Mode</a></div>");
 	body=html_encode(body, true, false, true, true);
 	body=body.replace(/\r?\n+(<\/span>)?$/,'$1');
 
@@ -51,7 +52,7 @@ if(ANSI_formatted) {
 	}
 }
 else {
-	writeln("<div class=\"ansi_toggle\"><a href=\"#\" onclick=\"load_ansi(this.parentNode.parentNode);return false\">ANSI Mode</a></div>");
+	writeln("<div class=\"ansi_toggle\"><a href=\"#\" onclick=\"load_ansi(this.parentNode.parentNode, "+html_sub_code_string+");return false\">ANSI Mode</a></div>");
 	// Strip CTRL-A
 	body=body.replace(/\1./g,'');
 	// Strip ANSI
diff --git a/web/root/sajax-forum/client_functions.xjs b/web/root/sajax-forum/client_functions.xjs
index 08e1c4596148d0f24597166173b0fb8540e8826b..3db9d339b16c41c02d59ac3657cf676e0b77c953 100644
--- a/web/root/sajax-forum/client_functions.xjs
+++ b/web/root/sajax-forum/client_functions.xjs
@@ -91,30 +91,26 @@ function toggle_replies(sub_code, message_number)
 	}
 }
 
-function load_ansi(container)
+function load_ansi(container, sub_code)
 {
 	var message=container.parentNode.parentNode;
-	var sub_code;
 	var message_number;
 	var m;
 
 	if((m=container.id.match(/^message-body-(.*)-([0-9]+)$/))!=null) {
-		sub_code=m[1];
 		message_number=m[2];
 		ajaxpage(body_url+"?sub_code="+encodeURIComponent(sub_code)+"&msg_number="+message_number+'&user='+encodeURIComponent(user)+"&ansi=true",container.id);
 		container.style.display='block';
 	}
 }
 
-function load_html(container)
+function load_html(container, sub_code)
 {
 	var message=container.parentNode.parentNode;
-	var sub_code;
 	var message_number;
 	var m;
 
 	if((m=container.id.match(/^message-body-(.*)-([0-9]+)$/))!=null) {
-		sub_code=m[1];
 		message_number=m[2];
 		ajaxpage(body_url+"?sub_code="+encodeURIComponent(sub_code)+"&msg_number="+message_number+'&user='+encodeURIComponent(user),container.id);
 		container.style.display='block';