diff --git a/man/lightdm-webkit2-greeter.1 b/man/lightdm-webkit2-greeter.1
index 73a3658..ca24f67 100644
--- a/man/lightdm-webkit2-greeter.1
+++ b/man/lightdm-webkit2-greeter.1
@@ -267,6 +267,13 @@ Returns an array of strings of filenames present at "path", or Null if the
 path does not exist\&.
 .RE
 .PP
+greeterutil\&.txt2html(txt)\fR
+.RS 4
+Returns a simple HTML conversion of the passed text\&.  Newlines are replaced
+with 
, and the characters \&&, <, >, and " are replaced with their HTML
+equivalents\&.
+.RE
+.PP
 Please see the LightDM API documentation for the complete list of calls
 available\&.  The lightdm-webkit2-greeter implements all of the LightDM API\&.
 .PP
diff --git a/src/lightdm-webkit2-greeter-ext.c b/src/lightdm-webkit2-greeter-ext.c
index 8afc2b6..3ad111c 100644
--- a/src/lightdm-webkit2-greeter-ext.c
+++ b/src/lightdm-webkit2-greeter-ext.c
@@ -1228,6 +1228,46 @@ get_dirlist_cb(JSContextRef context,
 	}
 }
 
+static JSValueRef
+txt2html_cb(JSContextRef context,
+			JSObjectRef function,
+			JSObjectRef thisObject,
+			size_t argumentCount,
+			const JSValueRef arguments[],
+			JSValueRef *exception) {
+	gchar *txt;
+	JSValueRef result;
+
+	if (argumentCount != 1) {
+		return mkexception(context, exception, ARGNOTSUPPLIED);
+	}
+
+	txt = arg_to_string(context, arguments[0], exception);
+	if (!txt) {
+		return JSValueMakeNull(context);
+	}
+
+	/* Replace & with & */
+	txt = g_strreplace (txt, "&", "&");
+
+	/* Replace " with " */
+	txt = g_strreplace (txt, "\"", """);
+
+	/* Replace < with < */
+	txt = g_strreplace (txt, "<", "<");
+
+	/* Replace > with > */
+	txt = g_strreplace (txt, ">", ">");
+
+	/* Replace newlines with 
 */
+	txt = g_strreplace (txt, "\n", "
");
+
+	result = string_or_null (context, txt);
+	g_free (txt);
+
+	return result;
+}
+
 
 static const JSStaticValue lightdm_user_values[] = {
 	{"name",           get_user_name_cb,           NULL, kJSPropertyAttributeReadOnly},
@@ -1324,6 +1364,7 @@ static const JSStaticFunction config_file_functions[] = {
 
 static const JSStaticFunction greeter_util_functions[] = {
 	{"dirlist",  get_dirlist_cb,   kJSPropertyAttributeReadOnly},
+	{"txt2html", txt2html_cb,      kJSPropertyAttributeReadOnly},
 	{NULL,       NULL,             0}};