diff --git a/code/game/objects/items/devices/taperecorder.dm b/code/game/objects/items/devices/taperecorder.dm
index dc74f0272c..1e9405cbeb 100644
--- a/code/game/objects/items/devices/taperecorder.dm
+++ b/code/game/objects/items/devices/taperecorder.dm
@@ -20,26 +20,14 @@
throw_speed = 4
throw_range = 20
-/obj/item/device/taperecorder/hear_talk(mob/living/M as mob, msg, var/verb="says")
+/obj/item/device/taperecorder/hear_talk(mob/living/M as mob, msg, var/verb="says", datum/language/speaking=null)
if(recording)
- //var/ending = copytext(msg, length(msg))
- timestamp+= timerecorded
- /*
- if(M.stuttering)
- storedinfo += "\[[time2text(timerecorded*10,"mm:ss")]\] [M.name] stammers, \"[msg]\""
- return
- if(M.getBrainLoss() >= 60)
- storedinfo += "\[[time2text(timerecorded*10,"mm:ss")]\] [M.name] gibbers, \"[msg]\""
- return
- if(ending == "?")
- storedinfo += "\[[time2text(timerecorded*10,"mm:ss")]\] [M.name] asks, \"[msg]\""
- return
- else if(ending == "!")
- storedinfo += "\[[time2text(timerecorded*10,"mm:ss")]\] [M.name] exclaims, \"[msg]\""
- return
- */
- storedinfo += "\[[time2text(timerecorded*10,"mm:ss")]\] [M.name] [verb], \"[msg]\""
- return
+ timestamp += timerecorded
+
+ if(speaking)
+ storedinfo += "\[[time2text(timerecorded*10,"mm:ss")]\] [M.name] [speaking.format_message_plain(msg, verb)]"
+ else
+ storedinfo += "\[[time2text(timerecorded*10,"mm:ss")]\] [M.name] [verb], \"[msg]\""
/obj/item/device/taperecorder/attackby(obj/item/weapon/W as obj, mob/user as mob)
..()
diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm
index 9ecbab5b9e..fcba6a91cc 100644
--- a/code/modules/admin/admin.dm
+++ b/code/modules/admin/admin.dm
@@ -186,12 +186,13 @@ var/global/floorIsLava = 0
var/f = 1
for(var/k in all_languages)
var/datum/language/L = all_languages[k]
- if(!f) body += " | "
- else f = 0
- if(L in M.languages)
- body += "[k]"
- else
- body += "[k]"
+ if(!(L.flags & INNATE))
+ if(!f) body += " | "
+ else f = 0
+ if(L in M.languages)
+ body += "[k]"
+ else
+ body += "[k]"
body += {"