diff --git a/src/openvpn/tun.c b/src/openvpn/tun.c
index ce3d882..875f558 100644
--- a/src/openvpn/tun.c
+++ b/src/openvpn/tun.c
@@ -510,20 +510,21 @@
 {
     struct gc_arena gc = gc_new();
     const bool looks_like_netmask = ((addr & 0xFF000000) == 0xFF000000);
-    if (tun)
+    if (tun && (topology == TOP_NET30 || topology == TOP_P2P))
     {
-        if (looks_like_netmask && (topology == TOP_NET30 || topology == TOP_P2P))
+        if (looks_like_netmask)
         {
             msg(M_WARN, "WARNING: Since you are using --dev tun with a point-to-point topology, the second argument to --ifconfig must be an IP address.  You are using something (%s) that looks more like a netmask. %s",
                 print_in_addr_t(addr, 0, &gc),
                 ifconfig_warn_how_to_silence);
         }
     }
-    else /* tap */
+    else /* tap or tun with subnet topology */
     {
         if (!looks_like_netmask)
         {
-            msg(M_WARN, "WARNING: Since you are using --dev tap, the second argument to --ifconfig must be a netmask, for example something like 255.255.255.0. %s",
+            msg(M_WARN, "WARNING: Since you are using --dev %s, the second argument to --ifconfig must be a netmask, for example something like 255.255.255.0. %s",
+                tun ? "tun with a subnet topology" : "tap",
                 ifconfig_warn_how_to_silence);
         }
     }
