diff --git a/doc/fccharset.fncs b/doc/fccharset.fncs
index f4c7d32..93e1f5c 100644
--- a/doc/fccharset.fncs
+++ b/doc/fccharset.fncs
@@ -98,6 +98,19 @@ Returns a set including only those chars found in either aa but not b.
@@
+@RET@ FcCharSet *
+@FUNC@ FcCharSetMerge
+@TYPE1@ const FcCharSet * @ARG1@ a
+@TYPE2@ const FcCharSet * @ARG2@ b
+@PURPOSE@ Merge charsets
+@DESC@
+If a is NULL, returns a copy of b.
+If a is an FcCharSet object owned by fontconfig that
+cannot be modified, it returns the union of a and
+b in a newly-created FcCharSet object.
+Otherwise, adds all chars in b to a and returns a. In other words, this is an in-place versionof FcCharSetUnion.
+@@
+
@RET@ FcBool
@FUNC@ FcCharSetHasChar
@TYPE1@ const FcCharSet * @ARG1@ fcs
diff --git a/fontconfig/fontconfig.h b/fontconfig/fontconfig.h
index 529456f..606580d 100644
--- a/fontconfig/fontconfig.h
+++ b/fontconfig/fontconfig.h
@@ -439,6 +439,9 @@ FcCharSetUnion (const FcCharSet *a, const FcCharSet *b);
FcPublic FcCharSet*
FcCharSetSubtract (const FcCharSet *a, const FcCharSet *b);
+FcPublic FcCharSet *
+FcCharSetMerge (FcCharSet *a, const FcCharSet *b);
+
FcPublic FcBool
FcCharSetHasChar (const FcCharSet *fcs, FcChar32 ucs4);
diff --git a/src/fcint.h b/src/fcint.h
index c8ff228..0b41d59 100644
--- a/src/fcint.h
+++ b/src/fcint.h
@@ -653,9 +653,6 @@ FcNameUnparseValueList (FcStrBuf *buf,
FcPrivate FcCharLeaf *
FcCharSetFindLeafCreate (FcCharSet *fcs, FcChar32 ucs4);
-FcPrivate FcCharSet *
-FcCharSetMerge (FcCharSet *a, const FcCharSet *b);
-
FcPrivate FcBool
FcCharSetSerializeAlloc(FcSerialize *serialize, const FcCharSet *cs);