diff --git a/code/modules/admin/IsBanned.dm b/code/modules/admin/IsBanned.dm
index 6c8d642510a..4015c2fda1c 100644
--- a/code/modules/admin/IsBanned.dm
+++ b/code/modules/admin/IsBanned.dm
@@ -10,7 +10,9 @@ world/IsBanned(key,address,computer_id)
var/admin = 0
var/ckey = ckey(key)
if((ckey in admin_datums) || (ckey in deadmins))
- admin = 1
+ var/datum/admins/A = admin_datums[ckey]
+ if(A.rights & R_ADMIN)
+ admin = 1
//Guest Checking
if(!guests_allowed && IsGuestKey(key))
diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm
index 597cc2b3ae2..d92b9088d4a 100644
--- a/code/modules/admin/topic.dm
+++ b/code/modules/admin/topic.dm
@@ -887,7 +887,8 @@
else if(href_list["boot2"])
var/mob/M = locate(href_list["boot2"])
if(ismob(M))
- if(!check_if_greater_rights_than(M.client))
+ if(M.client && M.client.holder && (M.client.holder.rights & R_BAN))
+ to_chat(src, "[key_name_admin(M)] cannot be kicked from the server.")
return
to_chat(M, "You have been kicked from the server")
log_admin("[key_name(usr)] booted [key_name(M)].")
@@ -960,8 +961,6 @@
var/mob/M = locate(href_list["newban"])
if(!ismob(M)) return
- if(M.client && M.client.holder) return //admins cannot be banned. Even if they could, the ban doesn't affect them anyway
-
switch(alert("Temporary Ban?",,"Yes","No", "Cancel"))
if("Yes")
var/mins = input(usr,"How long (in minutes)?","Ban time",1440) as num|null