diff --git a/ietf/community/models.py b/ietf/community/models.py
index 399ebf3f9..5b8b0cfff 100644
--- a/ietf/community/models.py
+++ b/ietf/community/models.py
@@ -126,6 +126,9 @@ class Rule(models.Model):
     value = models.CharField(
         max_length=255)
 
+    class Meta:
+        unique_together= ("community_list", "rule_type", "value")
+
     last_updated = models.DateTimeField(
         auto_now=True)
 
diff --git a/ietf/community/views.py b/ietf/community/views.py
index f24c1d8c3..78a01bb21 100644
--- a/ietf/community/views.py
+++ b/ietf/community/views.py
@@ -3,6 +3,7 @@ import uuid
 import datetime
 import hashlib
 from datetime import timedelta
+from django.db import IntegrityError
 
 from django.conf import settings
 from django.contrib.auth import REDIRECT_FIELD_NAME
@@ -25,7 +26,10 @@ def _manage_list(request, clist):
         rule_form = RuleForm(request.POST, clist=clist)
         display_form = DisplayForm(instance=display_config)
         if rule_form.is_valid():
-            rule_form.save()
+            try:
+                rule_form.save()
+            except IntegrityError:
+                pass;
             rule_form = RuleForm(clist=clist)
             display_form = DisplayForm(instance=display_config)
     elif request.method == 'POST' and request.POST.get('save_display', None):