diff --git a/code/controllers/subsystem/voting.dm b/code/controllers/subsystem/voting.dm
index 0549457940e..6279e25fc84 100644
--- a/code/controllers/subsystem/voting.dm
+++ b/code/controllers/subsystem/voting.dm
@@ -145,9 +145,19 @@ var/datum/subsystem/vote/SSvote
/datum/subsystem/vote/proc/initiate_vote(vote_type, initiator_key)
if(!mode)
- if(started_time != null)
+ if(started_time)
var/next_allowed_time = (started_time + config.vote_delay)
- if(next_allowed_time > world.time)
+ if(mode)
+ usr << "There is already a vote in progress! please wait for it to finish."
+ return 0
+
+ var/admin = FALSE
+ var/ckey = ckey(initiator_key)
+ if((admin_datums[ckey]) || (ckey in deadmins))
+ admin = TRUE
+
+ if(next_allowed_time > world.time && !admin)
+ usr << "A vote was initiated recently, you must wait roughly [(next_allowed_time-world.time)/10] seconds before a new vote can be started!"
return 0
reset()