diff --git a/zktest/src/main/webapp/test2/B100-ZK-5629.zul b/zktest/src/main/webapp/test2/B100-ZK-5629.zul
new file mode 100644
index 0000000000..c4dd086a59
--- /dev/null
+++ b/zktest/src/main/webapp/test2/B100-ZK-5629.zul
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/zktest/src/main/webapp/test2/config.properties b/zktest/src/main/webapp/test2/config.properties
index ebf72a866d..dccafa2dd6 100644
--- a/zktest/src/main/webapp/test2/config.properties
+++ b/zktest/src/main/webapp/test2/config.properties
@@ -3119,6 +3119,7 @@ B90-ZK-4431.zul=A,E,Multislider
##zats##B100-ZK-5605.zul=A,E,clientbind,widget
##zats##B100-ZK-5480.zul=A,E,cascader,selection,label
##zats##B100-ZK-4355.zul=A,E,timebox,col,default
+##zats##B100-ZK-5629.zul=A,E,groupbox,title,encodeXML
##
# Features - 3.0.x version
diff --git a/zktest/src/test/java/org/zkoss/zktest/zats/test2/B100_ZK_5629Test.java b/zktest/src/test/java/org/zkoss/zktest/zats/test2/B100_ZK_5629Test.java
new file mode 100644
index 0000000000..468f0736b2
--- /dev/null
+++ b/zktest/src/test/java/org/zkoss/zktest/zats/test2/B100_ZK_5629Test.java
@@ -0,0 +1,30 @@
+/* B100_ZK_5629Test.java
+
+ Purpose:
+
+ Description:
+
+ History:
+ 9:26 AM 2024/1/30, Created by jumperchen
+
+Copyright (C) 2024 Potix Corporation. All Rights Reserved.
+*/
+package org.zkoss.zktest.zats.test2;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+import org.junit.jupiter.api.Test;
+
+import org.zkoss.test.webdriver.WebDriverTestCase;
+
+/**
+ * @author jumperchen
+ */
+public class B100_ZK_5629Test extends WebDriverTestCase {
+ @Test
+ public void test() {
+ connect();
+ waitResponse();
+ assertEquals("Drawer's position", jq(".z-groupbox-title-content").text());
+ }
+}
diff --git a/zul/src/main/resources/web/js/zul/wgt/mold/groupbox.js b/zul/src/main/resources/web/js/zul/wgt/mold/groupbox.js
index 1069b172c7..2901b6e4bb 100644
--- a/zul/src/main/resources/web/js/zul/wgt/mold/groupbox.js
+++ b/zul/src/main/resources/web/js/zul/wgt/mold/groupbox.js
@@ -15,12 +15,12 @@ it will be useful, but WITHOUT ANY WARRANTY.
function groupbox$mold$(out, skipper) {
var uuid = this.uuid,
cap = this.caption,
- title = this.getTitle();
- title = title && !cap ? zUtl.encodeXML(title) : undefined;
+ title = this.getTitle(),
+ titleHTML = title && !cap ? zUtl.encodeXML(title) : undefined;
out.push('
');
- if (title || cap) {
+ if (titleHTML || cap) {
out.push('
');
out.push('');
}