--- include/struct.h	Fri Jun 16 18:29:14 2006
+++ include/struct.h	Thu Jun 29 23:01:20 2006
@@ -615,2 +615,7 @@ typedef unsigned int u_int32_t;	/* XXX H
 #define OPIsWhois(x)    ((x)->oflag & OFLAG_WHOIS)
+#ifdef SHOW_SECRET
+#define OPCanSeeSecret(x) IsAnOper(x)
+#else
+#define OPCanSeeSecret(x) IsNetAdmin(x)
+#endif
 
--- src/modules/m_list.c	Fri Jun 16 18:29:16 2006
+++ src/modules/m_list.c	Thu Jun 29 23:25:48 2006
@@ -271,3 +271,3 @@ DLLFUNC CMD_FUNC(m_list)
 				  chptr = find_channel(name, NullChn);
-				  if (chptr && (ShowChannel(sptr, chptr) || IsAnOper(sptr))) {
+				  if (chptr && (ShowChannel(sptr, chptr) || OPCanSeeSecret(sptr))) {
 #ifdef LIST_SHOW_MODES
@@ -366,3 +366,3 @@ void _send_list(aClient *cptr, int numse
 				    && !IsMember(cptr, chptr)
-				    && !IsAnOper(cptr))
+				    && !OPCanSeeSecret(cptr))
 					continue;
@@ -407,3 +407,3 @@ void _send_list(aClient *cptr, int numse
 #endif
-				if (!IsAnOper(cptr))
+				if (!OPCanSeeSecret(cptr))
 					sendto_one(cptr,
--- src/modules/m_names.c	Fri Jun 16 18:29:16 2006
+++ src/modules/m_names.c	Thu Jun 29 23:27:18 2006
@@ -128,3 +128,3 @@ DLLFUNC CMD_FUNC(m_names)
 
-	if (!chptr || (!ShowChannel(sptr, chptr) && !IsAnOper(sptr)))
+	if (!chptr || (!ShowChannel(sptr, chptr) && !OPCanSeeSecret(sptr)))
 	{
--- src/modules/m_topic.c	Fri Jun 16 18:29:17 2006
+++ src/modules/m_topic.c	Thu Jun 29 23:29:29 2006
@@ -148,3 +148,3 @@ long flags = 0; /* cache: membership fla
 			if (!ismember && !IsServer(sptr)
-			    && !IsOper(sptr) && !IsULine(sptr))
+			    && !OPCanSeeSecret(sptr) && !IsULine(sptr))
 			{
--- src/modules/m_who.c	Fri Jun 16 18:29:17 2006
+++ src/modules/m_who.c	Thu Jun 29 23:30:25 2006
@@ -798,3 +798,3 @@ static char *first_visible_channel(aClie
 		{
-			if (IsAnOper(sptr))
+			if (OPCanSeeSecret(sptr))
 				*flg |= FVC_HIDDEN;
--- src/modules/m_whois.c	Fri Jun 16 18:29:17 2006
+++ src/modules/m_whois.c	Thu Jun 29 23:31:49 2006
@@ -211,7 +211,3 @@ DLLFUNC int  m_whois(aClient *cptr, aCli
 					showchannel = 1;
-#ifndef SHOW_SECRET
-				if (IsAnOper(sptr) && !SecretChannel(chptr))
-#else
-				if (IsAnOper(sptr))
-#endif
+				if (OPCanSeeSecret(sptr))
 					showchannel = 1;
--- src/modules/webtv.c	Fri Jun 16 18:29:17 2006
+++ src/modules/webtv.c	Thu Jun 29 23:32:55 2006
@@ -216,3 +216,3 @@ int	w_whois(aClient *cptr, aClient *sptr
 					showperson = 1;
-				else if (IsAnOper(sptr) && SecretChannel(chptr)) {
+				else if (OPCanSeeSecret(sptr) && SecretChannel(chptr)) {
 					showperson = 1;
@@ -268,7 +268,3 @@ int	w_whois(aClient *cptr, aClient *sptr
 					showchannel = 1;
-#ifndef SHOW_SECRET
-				if (IsAnOper(sptr) && !SecretChannel(chptr))
-#else
-				if (IsAnOper(sptr))
-#endif
+				if (OPCanSeeSecret(sptr))
 					showchannel = 1;
