diff --git a/tools/superfences_formaters.py b/tools/superfences_formaters.py
index 4d99a8df..64a7fe24 100644
--- a/tools/superfences_formaters.py
+++ b/tools/superfences_formaters.py
@@ -11,6 +11,7 @@
import sys
from io import StringIO
from collections import OrderedDict
+from markdown.util import code_escape
def yaml_load(stream, loader=yaml.Loader):
@@ -169,7 +170,8 @@ def py_render(src="", language="", class_name=None, options=None, md="", **kwarg
elif target == 'stdout':
result_options['title'] = 'Text Written to STDOUT'
elif target is not None:
- result_options['title'] = f'Value of `{target}`'
+ # Store title in stash to avoid it being escaped by Pygments.
+ result_options['title'] = md.htmlStash.store(f'Value of {code_escape(target)}')
output = md.preprocessors['fenced_code_block'].highlight(result, output_lang, result_options, md, **kwargs)
return f'{source}\n