diff --git a/src/sbbs3/readmsgs.cpp b/src/sbbs3/readmsgs.cpp
index ceb83f2c256fab06fcd33e8b18f7ce29776424ab..11d5a4489e0a7dd2323e31b4b86a7b8bb8065536 100644
--- a/src/sbbs3/readmsgs.cpp
+++ b/src/sbbs3/readmsgs.cpp
@@ -504,7 +504,7 @@ int sbbs_t::scanposts(uint subnum, long mode, const char *find)
 	int64_t	i64;
 	int		quit=0;
 	uint 	usub,ugrp,reads=0;
-	uint	lp=0;
+	uint	lp = LP_BYSELF;
 	long	org_mode=mode;
 	ulong	msgs,l,unvalidated;
 	uint32_t last;
@@ -568,7 +568,7 @@ int sbbs_t::scanposts(uint subnum, long mode, const char *find)
 
 	if(!(mode&SCAN_TOYOU)
 		&& (!mode || mode&SCAN_FIND || !(subscan[subnum].cfg&SUB_CFG_YSCAN)))
-		lp=LP_BYSELF|LP_OTHERS;
+		lp|=LP_OTHERS;
 	if(mode&SCAN_TOYOU && mode&SCAN_UNREAD)
 		lp|=LP_UNREAD;
 	if(!(cfg.sub[subnum]->misc&SUB_NOVOTING))
@@ -1697,7 +1697,7 @@ long sbbs_t::listsub(uint subnum, long mode, long start, const char* search)
 	uint32_t	posts;
 	uint32_t	total=0;
 	long	displayed = 0;
-	long	lp_mode = LP_BYSELF|LP_OTHERS;
+	long	lp_mode = LP_BYSELF;
 	post_t	*post;
 
 	if((i=smb_stack(&smb,SMB_STACK_PUSH))!=0) {
@@ -1712,8 +1712,8 @@ long sbbs_t::listsub(uint subnum, long mode, long start, const char* search)
 		smb_stack(&smb,SMB_STACK_POP);
 		return(0); 
 	}
-	if(mode&SCAN_TOYOU)
-		lp_mode = 0;
+	if(!(mode&SCAN_TOYOU))
+		lp_mode |= LP_OTHERS;
 	if(mode&SCAN_UNREAD)
 		lp_mode |= LP_UNREAD;
 	if(!(cfg.sub[subnum]->misc&SUB_NOVOTING))