diff --git a/src/com/android/mms/dom/smil/SmilPlayer.java b/src/com/android/mms/dom/smil/SmilPlayer.java
index 0fc7b07..356c6a0 100644
--- a/src/com/android/mms/dom/smil/SmilPlayer.java
+++ b/src/com/android/mms/dom/smil/SmilPlayer.java
@@ -510,7 +510,12 @@
     }
 
     private synchronized TimelineEntry reloadCurrentEntry() {
-        return mAllEntries.get(mCurrentElement);
+        // Check if the position is less than size of all entries
+        if (mCurrentElement < mAllEntries.size()) {
+            return mAllEntries.get(mCurrentElement);
+        } else {
+            return null;
+        }
     }
 
     private synchronized void actionPause() {
@@ -567,6 +572,8 @@
                     if (isReloadAction()) {
                         actionReload();
                         entry = reloadCurrentEntry();
+                        if (entry == null)
+                            return;
                         if (isPausedState()) {
                             mAction = SmilPlayerAction.PAUSE;
                         }
diff --git a/src/com/android/mms/transaction/SmsReceiverService.java b/src/com/android/mms/transaction/SmsReceiverService.java
old mode 100644
new mode 100755
index f3e094d..d2097b0
--- a/src/com/android/mms/transaction/SmsReceiverService.java
+++ b/src/com/android/mms/transaction/SmsReceiverService.java
@@ -52,6 +52,7 @@
 import android.telephony.ServiceState;
 import android.telephony.SmsManager;
 import android.telephony.SmsMessage;
+import android.text.TextUtils;
 import android.util.Log;
 import android.widget.Toast;
 
@@ -411,9 +412,14 @@
         // excess messages.
         Long threadId = values.getAsLong(Sms.THREAD_ID);
         String address = values.getAsString(Sms.ADDRESS);
-        Contact cacheContact = Contact.get(address,true);
-        if (cacheContact != null) {
-            address = cacheContact.getNumber();
+        if (!TextUtils.isEmpty(address)) {
+            Contact cacheContact = Contact.get(address,true);
+            if (cacheContact != null) {
+                address = cacheContact.getNumber();
+            }
+        } else {
+            address = getString(R.string.unknown_sender);
+            values.put(Sms.ADDRESS, address);
         }
 
         if (((threadId == null) || (threadId == 0)) && (address != null)) {
diff --git a/src/com/android/mms/ui/ManageSimMessages.java b/src/com/android/mms/ui/ManageSimMessages.java
index 077e2d6..fa41291 100644
--- a/src/com/android/mms/ui/ManageSimMessages.java
+++ b/src/com/android/mms/ui/ManageSimMessages.java
@@ -139,7 +139,6 @@
                     updateState(SHOW_LIST);
                 }
                 startManagingCursor(mCursor);
-                registerSimChangeObserver();
             } else {
                 // Let user know the SIM is empty
                 updateState(SHOW_EMPTY);
diff --git a/src/com/android/mms/util/Recycler.java b/src/com/android/mms/util/Recycler.java
index 7c503a1..15a15e6 100644
--- a/src/com/android/mms/util/Recycler.java
+++ b/src/com/android/mms/util/Recycler.java
@@ -427,8 +427,10 @@
                             null, "date DESC");     // get in newest to oldest order
 
                     if (msgs.getCount() >= limit) {
+                        msgs.close();
                         return true;
                     }
+                    msgs.close();
                 }
             } finally {
                 cursor.close();
