--- /dev/null
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test msgfilter on a PO file with plurals.
+
+cat <<\EOF > mf-test6.po
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=ASCII\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#, c-format
+msgid "'Your command, please?', asked the waiter."
+msgstr "'Votre commande, s'il vous plait', dit le garcon."
+
+# Les gateaux allemands sont les meilleurs du monde.
+#, c-format
+msgid "a piece of cake"
+msgid_plural "%d pieces of cake"
+msgstr[0] "un morceau de gateau"
+msgstr[1] "%d morceaux de gateau"
+
+# Reverse the arguments.
+#, c-format
+msgid "%s is replaced by %s."
+msgstr "%2$s remplace %1$s."
+EOF
+
+: > mf-test6.tmp
+
+cat <<\EOF > mf-test6.sh
+#! /bin/sh
+echo "========================= $MSGFILTER_LOCATION =========================" >> mf-test6.tmp
+if test -n "${MSGFILTER_MSGCTXT+set}"; then
+ echo "context: $MSGFILTER_MSGCTXT" >> mf-test6.tmp
+fi
+cat >> mf-test6.tmp <<MEOF
+$MSGFILTER_MSGID
+$MSGFILTER_MSGID_PLURAL
+$MSGFILTER_PLURAL_FORM
+MEOF
+cat
+EOF
+chmod a+x mf-test6.sh
+
+: ${MSGFILTER=msgfilter}
+LC_ALL=C \
+${MSGFILTER} -i mf-test6.po ./mf-test6.sh >/dev/null 2> mf-test6.err
+result=$?
+
+cat mf-test6.err | grep -v 'warning: Locale charset' | grep -v '^ '
+test $result = 0 || { exit 1; }
+
+LC_ALL=C tr -d '\r' < mf-test6.tmp > mf-test6.out
+
+cat <<\EOF > mf-test6.ok
+========================= mf-test6.po:2 =========================
+
+
+
+========================= mf-test6.po:8 =========================
+'Your command, please?', asked the waiter.
+
+
+========================= mf-test6.po:14 =========================
+a piece of cake
+%d pieces of cake
+0
+========================= mf-test6.po:14 =========================
+a piece of cake
+%d pieces of cake
+1
+========================= mf-test6.po:20 =========================
+%s is replaced by %s.
+
+
+EOF
+
+: ${DIFF=diff}
+${DIFF} mf-test6.ok mf-test6.out
+result=$?
+
+exit $result