diff --git a/code/__HELPERS/text.dm b/code/__HELPERS/text.dm
index 9ebc3512dd..5c0324a3e9 100644
--- a/code/__HELPERS/text.dm
+++ b/code/__HELPERS/text.dm
@@ -274,7 +274,11 @@ proc/TextPreview(var/string,var/len=40)
else
return string
else
- return "[copytext(string, 1, 37)]..."
+ return "[copytext_preserve_html(string, 1, 37)]..."
+
+//alternative copytext() for encoded text, doesn't break html entities (" and other)
+/proc/copytext_preserve_html(var/text, var/first, var/last)
+ return html_encode(copytext(html_decode(text), first, last))
//For generating neat chat tag-images
//The icon var could be local in the proc, but it's a waste of resources
@@ -283,4 +287,4 @@ proc/TextPreview(var/string,var/len=40)
/proc/create_text_tag(var/tagname, var/tagdesc = tagname, var/client/C = null)
if(C && (C.prefs.toggles & CHAT_NOICONS))
return tagdesc
- return "
"
+ return "
"
\ No newline at end of file
diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm
index 0af4b0a235..69f5931fc0 100644
--- a/code/modules/mob/mob.dm
+++ b/code/modules/mob/mob.dm
@@ -304,7 +304,7 @@
if(lentext(msg) <= 40)
return "\blue [msg]"
else
- return "\blue [copytext(msg, 1, 37)]... More..."
+ return "\blue [copytext_preserve_html(msg, 1, 37)]... More..."
/*
/mob/verb/help()