--- /dev/null
+#!/bin/sh
+
+# Test of extracted comments specified per keyword, including the case of
+# duplicated msgids.
+
+tmpfiles=""
+trap 'rm -fr $tmpfiles' 1 2 3 15
+
+tmpfiles="$tmpfiles xg-test9.c"
+cat <<\EOF > xg-test9.c
+/* xgettext: max-width 25 */
+label ("eagle");
+
+/* xgettext: xml-format */
+label ("seamew");
+
+title ("falcon");
+
+label ("falcon");
+
+label ("pigeon");
+label ("pigeon");
+EOF
+
+tmpfiles="$tmpfiles xg-test9.po"
+: ${XGETTEXT=xgettext}
+${XGETTEXT} --omit-header \
+ --keyword=label:1,\"xhtml-format\",\"xml-format\" \
+ --keyword=title:1,\"xhtml-format\",\"xml-format\" \
+ -d xg-test9 xg-test9.c
+test $? = 0 || { rm -fr $tmpfiles; exit 1; }
+
+tmpfiles="$tmpfiles xg-test9.ok"
+cat <<\EOF > xg-test9.ok
+#. xhtml-format
+#. xml-format
+#: xg-test9.c:2
+msgid "eagle"
+msgstr ""
+
+#. xhtml-format
+#. xml-format
+#: xg-test9.c:5
+msgid "seamew"
+msgstr ""
+
+#. xhtml-format
+#. xml-format
+#: xg-test9.c:7 xg-test9.c:9
+msgid "falcon"
+msgstr ""
+
+#. xhtml-format
+#. xml-format
+#: xg-test9.c:11 xg-test9.c:12
+msgid "pigeon"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-test9.ok xg-test9.po
+result=$?
+
+rm -fr $tmpfiles
+
+exit $result