diff --git a/bits/42_sstxml.js b/bits/42_sstxml.js
index cc8ba48..ae504fa 100644
--- a/bits/42_sstxml.js
+++ b/bits/42_sstxml.js
@@ -157,7 +157,7 @@ function parse_si(x, opts) {
 	/* 18.4.4 r CT_RElt (Rich Text Run) */
 	else if((y = x.match(sirregex))) {
 		z.r = utf8read(x);
-		z.t = utf8read(unescapexml((x.match(sitregex)||[]).join("").replace(tagregex,"")));
+		z.t = utf8read(unescapexml((x.replace(/<rPh.*?>(.*?)<\/rPh>/g, '').match(sitregex)||[]).join("").replace(tagregex,"")));
 		if(html) z.h = parse_rs(z.r);
 	}
 	/* 18.4.3 phoneticPr CT_PhoneticPr (TODO: needed for Asian support) */
diff --git a/xlsx.flow.js b/xlsx.flow.js
index ca03b88..498a3ff 100644
--- a/xlsx.flow.js
+++ b/xlsx.flow.js
@@ -4581,7 +4581,7 @@ function parse_si(x, opts) {
 	/* 18.4.4 r CT_RElt (Rich Text Run) */
 	else if((y = x.match(sirregex))) {
 		z.r = utf8read(x);
-		z.t = utf8read(unescapexml((x.match(sitregex)||[]).join("").replace(tagregex,"")));
+		z.t = utf8read(unescapexml((x.replace(/<rPh.*?>(.*?)<\/rPh>/g, '').match(sitregex)||[]).join("").replace(tagregex,"")));
 		if(html) z.h = parse_rs(z.r);
 	}
 	/* 18.4.3 phoneticPr CT_PhoneticPr (TODO: needed for Asian support) */
diff --git a/xlsx.js b/xlsx.js
index 3900205..9174665 100644
--- a/xlsx.js
+++ b/xlsx.js
@@ -4539,7 +4539,7 @@ function parse_si(x, opts) {
 	/* 18.4.4 r CT_RElt (Rich Text Run) */
 	else if((y = x.match(sirregex))) {
 		z.r = utf8read(x);
-		z.t = utf8read(unescapexml((x.match(sitregex)||[]).join("").replace(tagregex,"")));
+		z.t = utf8read(unescapexml((x.replace(/<rPh.*?>(.*?)<\/rPh>/g, '').match(sitregex)||[]).join("").replace(tagregex,"")));
 		if(html) z.h = parse_rs(z.r);
 	}
 	/* 18.4.3 phoneticPr CT_PhoneticPr (TODO: needed for Asian support) */