diff --git a/handlebars/src/main/java/com/github/jknack/handlebars/internal/Variable.java b/handlebars/src/main/java/com/github/jknack/handlebars/internal/Variable.java index 9d447ef93..97b58cbc7 100644 --- a/handlebars/src/main/java/com/github/jknack/handlebars/internal/Variable.java +++ b/handlebars/src/main/java/com/github/jknack/handlebars/internal/Variable.java @@ -225,12 +225,17 @@ protected void collect(final Collection result, final TagType tagType) { */ protected CharSequence formatAndEscape(final Object value, final Formatter.Chain formatter) { Object formatted = formatter.format(value); - CharSequence formattedString = formatted.toString(); + CharSequence formattedCharSequence; + if (value instanceof CharSequence) { + formattedCharSequence = (CharSequence) value; + } else { + formattedCharSequence = formatted.toString(); + } if (formatted instanceof Handlebars.SafeString) { - return formattedString; + return formattedCharSequence; } - CharSequence escapedString = escapingStrategy.escape(formattedString); - return escapedString; + CharSequence escapedCharSequence = escapingStrategy.escape(formattedCharSequence); + return escapedCharSequence; } @Override