diff --git a/InCallUI/src/com/android/incallui/VideoPauseController.java b/InCallUI/src/com/android/incallui/VideoPauseController.java
index a529d20..01b6b0d 100644
--- a/InCallUI/src/com/android/incallui/VideoPauseController.java
+++ b/InCallUI/src/com/android/incallui/VideoPauseController.java
@@ -23,6 +23,8 @@
 import com.android.incallui.InCallVideoCallCallbackNotifier.SessionModificationListener;
 import com.google.common.base.Preconditions;
 
+import android.telecom.VideoProfile;
+
 /**
  * This class is responsible for generating video pause/resume requests when the InCall UI is sent
  * to the background and subsequently brought back to the foreground.
@@ -192,10 +194,11 @@
         Preconditions.checkState(!areSame(call, mPrimaryCallContext));
         final boolean canVideoPause = VideoUtils.canVideoPause(call);
 
-        if ((isIncomingCall(mPrimaryCallContext) || isDialing(mPrimaryCallContext))
+        if ((isIncomingCall(mPrimaryCallContext) || isDialing(mPrimaryCallContext) ||
+                (call != null && VideoProfile.isPaused(call.getVideoState())))
                 && canVideoPause && !mIsInBackground) {
-            // Send resume request for the active call, if user rejects incoming call or ends
-            // dialing call and UI is in the foreground.
+            // Send resume request for the active call, if user rejects incoming call, ends dialing
+            // call, or the call was previously in a paused state and UI is in the foreground.
             sendRequest(call, true);
         } else if (isIncomingCall(call) && canVideoPause(mPrimaryCallContext)) {
             // Send pause request if there is an active video call, and we just received a new
