diff --git a/sql/sql_class.cc b/sql/sql_class.cc
index 6e24e951aa4370581c28bbcba234db86ba58bb19..d8edd2d29b226f4103a16b547578db531f4a45b6 100644
--- a/sql/sql_class.cc
+++ b/sql/sql_class.cc
@@ -426,11 +426,12 @@ void THD::awake(bool prepare_to_die)
   THD_CHECK_SENTRY(this);
   safe_mutex_assert_owner(&LOCK_delete); 
 
+  thr_alarm_kill(real_id);
   if (prepare_to_die)
     killed = 1;
-  thr_alarm_kill(real_id);
 #ifdef SIGNAL_WITH_VIO_CLOSE
-  close_active_vio();
+  else
+    close_active_vio();
 #endif    
   if (mysys_var)
   {