diff --git a/services/java/com/android/server/PowerManagerService.java b/services/java/com/android/server/PowerManagerService.java
index af93d36..596325c 100644
--- a/services/java/com/android/server/PowerManagerService.java
+++ b/services/java/com/android/server/PowerManagerService.java
@@ -1440,6 +1440,8 @@
                         sendNotificationLocked(true, -1);
                     }
                 } else {
+                    // cancel light sensor task
+                    mHandler.removeCallbacks(mAutoBrightnessTask);
                     mScreenOffTime = SystemClock.elapsedRealtime();
                     long identity = Binder.clearCallingIdentity();
                     try {
@@ -1803,6 +1805,10 @@
         }
     }
 
+    private boolean isScreenTurningOffLocked() {
+        return (mScreenBrightness.animating && mScreenBrightness.targetValue == 0);
+    }
+
     private void forceUserActivityLocked() {
         // cancel animation so userActivity will succeed
         mScreenBrightness.animating = false;
@@ -1863,7 +1869,7 @@
                         + " force=" + force);
             }
             // ignore user activity if we are in the process of turning off the screen
-            if (mScreenBrightness.animating && mScreenBrightness.targetValue == 0) {
+            if (isScreenTurningOffLocked()) {
                 Log.d(TAG, "ignoring user activity while turning off screen");
                 return;
             }
@@ -2441,6 +2447,11 @@
     SensorEventListener mLightListener = new SensorEventListener() {
         public void onSensorChanged(SensorEvent event) {
             synchronized (mLocks) {
+                // ignore light sensor while screen is turning off
+                if (isScreenTurningOffLocked()) {
+                    return;
+                }
+
                 int value = (int)event.values[0];
                 long milliseconds = event.timestamp / 1000000;
                 if (mDebugLightSensor) {
