diff --git a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/running/MeetingActor.scala b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/running/MeetingActor.scala
index 480b0b3a6a3b7f68bef0986fbeb16d3d05c0edab..a8e052e5e3945a0eb0132543598934bd11d9b279 100755
--- a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/running/MeetingActor.scala
+++ b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/running/MeetingActor.scala
@@ -753,12 +753,10 @@ class MeetingActor(
     log.info("Checking for inactive users.")
     val users = Users2x.findAll(liveMeeting.users2x)
     users foreach { u =>
+      val hasActivityAfterWarning = u.lastInactivityInspect < u.lastActivityTime
+      val hasActivityRecently = (lastUsersInactivityInspection - expiryTracker.userInactivityThresholdInMs) < u.lastActivityTime
 
-      if (u.lastInactivityInspect > u.lastActivityTime) return
-
-      val active = (lastUsersInactivityInspection - expiryTracker.userInactivityThresholdInMs) < u.lastActivityTime
-      if (!active) {
-
+      if (hasActivityAfterWarning && !hasActivityRecently) {
         log.info("User has been inactive for " + TimeUnit.MILLISECONDS.toMinutes(expiryTracker.userInactivityThresholdInMs) + " minutes. Sending inactivity warning. meetingId=" + props.meetingProp.intId + " userId=" + u.intId + " user=" + u)
 
         val secsToDisconnect = TimeUnit.MILLISECONDS.toSeconds(expiryTracker.userActivitySignResponseDelayInMs);
@@ -772,12 +770,11 @@ class MeetingActor(
     log.info("Check for users who haven't responded to user inactivity warning.")
     val users = Users2x.findAll(liveMeeting.users2x)
     users foreach { u =>
-
-      if (u.lastInactivityInspect == 0 ||
-        u.lastActivityTime > u.lastInactivityInspect) return
-
+      val hasInactivityWarningSent = u.lastInactivityInspect != 0
+      val hasActivityAfterWarning = u.lastInactivityInspect < u.lastActivityTime
       val respondedOnTime = (lastUsersInactivityInspection - expiryTracker.userActivitySignResponseDelayInMs) < u.lastInactivityInspect
-      if (!respondedOnTime) {
+
+      if (hasInactivityWarningSent && !hasActivityAfterWarning && !respondedOnTime) {
         log.info("User didn't response the inactivity warning within " + TimeUnit.MILLISECONDS.toSeconds(expiryTracker.userActivitySignResponseDelayInMs) + " seconds. Ejecting from meeting. meetingId=" + props.meetingProp.intId + " userId=" + u.intId + " user=" + u)
 
         UsersApp.ejectUserFromMeeting(