diff --git a/netstat.c b/netstat.c
index 911d0c3..d6037a0 100644
--- a/netstat.c
+++ b/netstat.c
@@ -167,6 +167,7 @@ int flag_exp = 1;
int flag_wide= 0;
int flag_prg = 0;
int flag_arg = 0;
+int flag_noprot = 0;
int flag_ver = 0;
int flag_l2cap = 0;
int flag_rfcomm = 0;
@@ -181,9 +182,9 @@ FILE *procinfo;
perror((file)); \
return -1; \
} \
- if (flag_arg || flag_ver) \
+ if (!flag_noprot && (flag_arg || flag_ver)) \
ESYSNOT("netstat", (name)); \
- if (flag_arg) \
+ if (!flag_noprot && flag_arg) \
rc = 1; \
} else { \
do { \
@@ -2308,7 +2309,7 @@ int main
if ((flag_inet || flag_inet6 || flag_sta) &&
!(flag_tcp || flag_sctp || flag_udp || flag_udplite || flag_raw))
- flag_tcp = flag_sctp = flag_udp = flag_udplite = flag_raw = 1;
+ flag_noprot = flag_tcp = flag_sctp = flag_udp = flag_udplite = flag_raw = 1;
if ((flag_tcp || flag_sctp || flag_udp || flag_udplite || flag_raw || flag_igmp) &&
!(flag_inet || flag_inet6))