diff --git a/CHANGELOG.md b/CHANGELOG.md
index a3101056e..356be37a9 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -8,6 +8,7 @@
Bug #3997: Almalexia doesn't pace
Bug #4036: Weird behaviour of AI packages if package target has non-unique ID
Bug #4047: OpenMW not reporting its version number in MacOS; OpenMW-CS not doing it fully
+ Bug #4215: OpenMW shows book text after last
tag
Bug #4221: Characters get stuck in V-shaped terrain
Bug #4251: Stationary NPCs do not return to their position after combat
Bug #4293: Faction members are not aware of faction ownerships in barter
diff --git a/apps/openmw/mwgui/formatting.cpp b/apps/openmw/mwgui/formatting.cpp
index a9319048e..16568e2f3 100644
--- a/apps/openmw/mwgui/formatting.cpp
+++ b/apps/openmw/mwgui/formatting.cpp
@@ -31,6 +31,14 @@ namespace MWGui
boost::algorithm::replace_all(mText, "\r", "");
+ // vanilla game does not show any text after last
tag.
+ const std::string lowerText = Misc::StringUtils::lowerCase(mText);
+ int index = lowerText.rfind("
");
+ if (index == -1)
+ mText = "";
+ else
+ mText = mText.substr(0, index+4);
+
registerTag("br", Event_BrTag);
registerTag("p", Event_PTag);
registerTag("img", Event_ImgTag);