diff --git a/storage/innobase/srv/srv0srv.cc b/storage/innobase/srv/srv0srv.cc
index efc33a9baa249dde5a1f12e86d062029e1d6119e..51e898d98d814b973f897b4f1213c38e946d9256 100644
--- a/storage/innobase/srv/srv0srv.cc
+++ b/storage/innobase/srv/srv0srv.cc
@@ -2668,7 +2668,7 @@ srv_purge_should_exit(
 	ulint		n_purged)	/*!< in: pages purged in last batch */
 {
 	if (thd_kill_level(thd)) {
-		return(true);
+		return(srv_fast_shutdown != 0 || n_purged == 0);
 	}
 
 	switch (srv_shutdown_state) {