diff --git a/lib/hawat/blueprints/filters/__init__.py b/lib/hawat/blueprints/filters/__init__.py
index aeb633462be8551ac9cc65b9ffa65c632610f596..70cd87cff2730054f82ef68fb5899cf7d9083cda 100644
--- a/lib/hawat/blueprints/filters/__init__.py
+++ b/lib/hawat/blueprints/filters/__init__.py
@@ -81,6 +81,7 @@ def process_rule(item):
         if item.ips:
             ip4s = []
             ip6s = []
+            rule_ip4 = rule_ip6 = None
             for ipa in item.ips:
                 ipobj = ipranges.from_str(ipa)
                 if isinstance(ipobj, (ipranges.IP4, ipranges.IP4Range, ipranges.IP4Net)):
@@ -88,9 +89,13 @@ def process_rule(item):
                 else:
                     ip6s.append(ipa)
             if ip4s:
-                rules.append('Source.IP4 IN ["{}"]'.format('","'.join(ip4s)))
+                rule_ip4 = 'Source.IP4 IN ["{}"]'.format('","'.join(ip4s))
             if ip6s:
-                rules.append('Source.IP6 IN ["{}"]'.format('","'.join(ip6s)))
+                rule_ip6 = 'Source.IP6 IN ["{}"]'.format('","'.join(ip6s))
+            if rule_ip4 and rule_ip6:
+                rules.append('({} OR {})'.format(rule_ip4, rule_ip6))
+            elif rule_ip4 or rule_ip6:
+                rules.append(rule_ip4 if rule_ip4 else rule_ip6)
 
         item.filter = ' AND '.join(rules)