diff --git a/src/com/android/contacts/ContactsDrawerActivity.java b/src/com/android/contacts/ContactsDrawerActivity.java
index 466aa91..81c7252 100644
--- a/src/com/android/contacts/ContactsDrawerActivity.java
+++ b/src/com/android/contacts/ContactsDrawerActivity.java
@@ -108,10 +108,8 @@
         public void onDrawerStateChanged(int newState) {
             super.onDrawerStateChanged(newState);
             // Set transparent status bar when drawer starts to move.
-            if (CompatUtils.isLollipopCompatible() && newState != DrawerLayout.STATE_IDLE
-                    && getWindow().getStatusBarColor() == ContextCompat.getColor
-                    (ContactsDrawerActivity.this, R.color.primary_color_dark)) {
-                getWindow().setStatusBarColor(Color.TRANSPARENT);
+            if (newState != DrawerLayout.STATE_IDLE) {
+                makeStatusBarTransparent();
             }
             if (mRunnable != null && newState == DrawerLayout.STATE_IDLE) {
                 mRunnable.run();
@@ -199,6 +197,22 @@
         }
     }
 
+    @Override
+    protected void onResume() {
+        super.onResume();
+        if (mDrawer.isDrawerOpen(GravityCompat.START)) {
+            makeStatusBarTransparent();
+        }
+    }
+
+    private void makeStatusBarTransparent() {
+        if (CompatUtils.isLollipopCompatible()
+                && getWindow().getStatusBarColor() ==
+                        ContextCompat.getColor(this, R.color.primary_color_dark)) {
+            getWindow().setStatusBarColor(Color.TRANSPARENT);
+        }
+    }
+
     /**
      * Returns true if child class is DuplicatesActivity
      */
