diff --git a/scapy/fields.py b/scapy/fields.py
index ceabf1a99058de9bf1d07c6c3825b7974893f4ca..28ff64d9f51ba9a7ce0012f7829f0f2904b58898 100644
--- a/scapy/fields.py
+++ b/scapy/fields.py
@@ -1039,6 +1039,8 @@ class FlagValue(object):
         self.multi = isinstance(names, list)
         self.names = names
         self.value = self._fixvalue(value)
+    def __hash__(self):
+        return hash(self.value)
     def __int__(self):
         return self.value
     def __eq__(self, other):
diff --git a/test/regression.uts b/test/regression.uts
index c0ed1b311cd5d04a4d532e7bb7793d6935cbafc4..64397d9398baa674ec03660477d1f5a88203da7f 100644
--- a/test/regression.uts
+++ b/test/regression.uts
@@ -8185,6 +8185,8 @@ assert pkt.flags.DF
 assert pkt.flags.evil
 assert repr(pkt.flags) == '<Flag 6 (DF+evil)>'
 
+assert len({IP().flags, IP().flags}) == 1
+
 = TCP flags
 ~ TCP