diff --git a/test/regression.uts b/test/regression.uts
index dff21aa8991ae22dd04a211b51426ec66fa09593..c706feed4a1583cd0282d953ddee208b6be731af 100644
--- a/test/regression.uts
+++ b/test/regression.uts
@@ -482,6 +482,37 @@ except IndexError:
 else:
     False
 
+= getlayer with a filter
+~ getlayer IP
+pkt = IP() / IP(ttl=3) / IP()
+assert pkt[IP::{"ttl":3}].ttl == 3
+assert pkt.getlayer(IP, ttl=3).ttl == 3
+
+= specific haslayer and getlayer implementations for NTP
+~ haslayer getlayer NTP
+pkt = IP() / UDP() / NTPHeader()
+assert NTP in pkt
+assert pkt.haslayer(NTP)
+assert isinstance(pkt[NTP], NTPHeader)
+assert isinstance(pkt.getlayer(NTP), NTPHeader)
+
+= specific haslayer and getlayer implementations for EAP
+~ haslayer getlayer EAP
+pkt = Ether() / EAPOL() / EAP_MD5()
+assert EAP in pkt
+assert pkt.haslayer(EAP)
+assert isinstance(pkt[EAP], EAP_MD5)
+assert isinstance(pkt.getlayer(EAP), EAP_MD5)
+
+= specific haslayer and getlayer implementations for RadiusAttribute
+~ haslayer getlayer RadiusAttribute
+pkt = RadiusAttr_EAP_Message()
+assert RadiusAttribute in pkt
+assert pkt.haslayer(RadiusAttribute)
+assert isinstance(pkt[RadiusAttribute], RadiusAttr_EAP_Message)
+assert isinstance(pkt.getlayer(RadiusAttribute), RadiusAttr_EAP_Message)
+
+
 = equality
 ~ basic
 w=Ether()/IP()/UDP(dport=53)