diff --git a/xos/genx/tool/lib.py b/xos/genx/tool/lib.py
index 2230d5c..3c68d46 100644
--- a/xos/genx/tool/lib.py
+++ b/xos/genx/tool/lib.py
@@ -1,5 +1,15 @@
 import pdb
 import re
+from pattern import en
+
+def xproto_pluralize(field):
+    try:
+        # The user has set a plural, as an exception that cannot be handled automatically
+        plural = field['options']['plural']
+    except KeyError:
+        plural = en.pluralize(field['name'])
+
+    return plural
 
 def django_content_type_string(xptags):
     # Check possibility of KeyError in caller
diff --git a/xos/genx/tool/plurals.xtarget b/xos/genx/tool/plurals.xtarget
new file mode 100644
index 0000000..9cdd6c6
--- /dev/null
+++ b/xos/genx/tool/plurals.xtarget
@@ -0,0 +1,6 @@
+{% for m in proto.messages %}
+Model {{ m.name }}:
+{% for f in m.fields -%}
+The plural of {{ f.name}} is {{ xproto_pluralize(f) }}.
+{% endfor %}
+{%- endfor %}
diff --git a/xos/genx/tool/tests/target_test.py b/xos/genx/tool/tests/target_test.py
index b73bf12..f39a994 100644
--- a/xos/genx/tool/tests/target_test.py
+++ b/xos/genx/tool/tests/target_test.py
@@ -28,6 +28,30 @@
         self.generate(target=target, kv='what:what is what')
         self.assertIn("what is what", self.get_output())
 
+    def test_pluralize(self):
+        proto = \
+"""
+  message TestPluralize {
+      // The following field has an explicitly specified plural
+      required int anecdote = 1 [plural = "data"];
+      // The following fields have automatically computed plurals
+      required int sheep = 2;
+      required int radius = 2;
+      required int slice = 2;
+      required int network = 2;
+      required int omf_friendly = 2;
+  }
+"""
+
+        target = \
+"""
+{% for m in proto.messages.0.fields -%}
+{{ xproto_pluralize(m) }},
+{%- endfor %}
+"""
+        self.generate(xproto=proto, target=target)
+        self.assertEqual("data,sheep,radii,slices,networks,omf_friendlies", self.get_output().lstrip().rstrip().rstrip(','))
+
 if __name__ == '__main__':
     unittest.main()
 
