diff --git a/src/com/android/exchange/SyncManager.java b/src/com/android/exchange/SyncManager.java
index 6a693f9..b9c835a 100644
--- a/src/com/android/exchange/SyncManager.java
+++ b/src/com/android/exchange/SyncManager.java
@@ -91,6 +91,7 @@
     MessageObserver mMessageObserver;
     String mNextWaitReason;
     IEmailServiceCallback mCallback;
+    ConnectivityReceiver mConnectivityReceiver = null;
 
     RemoteCallbackList<IEmailServiceCallback> mCallbackList =
         new RemoteCallbackList<IEmailServiceCallback>();
@@ -545,7 +546,9 @@
                 INSTANCE.log("+WakeLock not needed for " + alarmOwner(id));
                 mWakeLocks.remove(id);
                 if (mWakeLocks.isEmpty()) {
-                    mWakeLock.release();
+                    if (mWakeLock != null) {
+                        mWakeLock.release();
+                    }
                     mWakeLock = null;
                     INSTANCE.log("+WAKE LOCK RELEASED");
                 }
@@ -634,6 +637,9 @@
             mWakeLock.release();
             mWakeLock = null;
         }
+        if (mConnectivityReceiver != null) {
+            unregisterReceiver(mConnectivityReceiver);
+        }
         clearAlarms();
     }
 
@@ -740,8 +746,9 @@
         resolver.registerContentObserver(Message.SYNCED_CONTENT_URI, true, mSyncedMessageObserver);
         resolver.registerContentObserver(Message.CONTENT_URI, false, mMessageObserver);
 
-        ConnectivityReceiver cr = new ConnectivityReceiver();
-        registerReceiver(cr, new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION));
+        mConnectivityReceiver = new ConnectivityReceiver();
+        registerReceiver(mConnectivityReceiver,
+                new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION));
         ConnectivityManager cm =
             (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
 
