diff --git a/circle/firewall/models.py b/circle/firewall/models.py
index dce3c58..f758d0e 100644
--- a/circle/firewall/models.py
+++ b/circle/firewall/models.py
@@ -487,7 +487,7 @@ class Host(models.Model):
                                         nat=True, proto=proto)
         else:
             ports = self.rules.filter(proto=proto, )
-        return ports.values_list('dport', flat=True)
+        return set(ports.values_list('dport', flat=True))
 
     def _get_random_port(self, proto, used_ports=None):
         """
@@ -496,7 +496,7 @@ class Host(models.Model):
 
         :param proto: The transport protocol of the generated port (tcp|udp).
         :type proto: str.
-        :param used_ports: Optional list of used ports returned by
+        :param used_ports: Optional set of used ports returned by
                            _get_ports_used.
         :returns: int -- the generated port number.
         :raises: ValidationError