diff --git a/include/stdplus/net/addr/ether.hpp b/include/stdplus/net/addr/ether.hpp
index 1fc3638..e0ff329 100644
--- a/include/stdplus/net/addr/ether.hpp
+++ b/include/stdplus/net/addr/ether.hpp
@@ -33,11 +33,6 @@
         return *this == static_cast<ether_addr&>(rhs);
     }
 
-    constexpr bool isEmpty() const noexcept
-    {
-        return *this == EtherAddr{};
-    }
-
     constexpr bool isMulticast() const noexcept
     {
         return ether_addr_octet[0] & 1;
@@ -45,7 +40,7 @@
 
     constexpr bool isUnicast() const noexcept
     {
-        return !(isEmpty() || isMulticast());
+        return !(*this == EtherAddr{} || isMulticast());
     }
 };
 
diff --git a/test/net/addr/ether.cpp b/test/net/addr/ether.cpp
index bf5ec2b..bff7248 100644
--- a/test/net/addr/ether.cpp
+++ b/test/net/addr/ether.cpp
@@ -15,13 +15,6 @@
     std::hash<EtherAddr>{}(EtherAddr{});
 }
 
-TEST(Query, IsEmpty)
-{
-    EXPECT_TRUE((EtherAddr{}.isEmpty()));
-    EXPECT_FALSE((EtherAddr{1}.isEmpty()));
-    EXPECT_FALSE((EtherAddr{0, 0, 0, 1}.isEmpty()));
-}
-
 TEST(Query, IsMulticast)
 {
     EXPECT_TRUE((EtherAddr{255, 255, 255, 255, 255, 255}.isMulticast()));
