diff --git a/src/mm-sim-mbim.c b/src/mm-sim-mbim.c
index 525b329..f44ce9e 100644
--- a/src/mm-sim-mbim.c
+++ b/src/mm-sim-mbim.c
@@ -262,6 +262,7 @@
     g_autoptr(MbimMessage)  response = NULL;
     g_autofree gchar       *raw_iccid = NULL;
     g_autoptr(GError)       error = NULL;
+    MbimSubscriberReadyState ready_state = MBIM_SUBSCRIBER_READY_STATE_NOT_INITIALIZED;
 
     self = g_task_get_source_object (task);
 
@@ -282,7 +283,6 @@
     if (response && mbim_message_response_get_result (response, MBIM_MESSAGE_TYPE_COMMAND_DONE, &self->priv->preload_error)) {
         if (mbim_device_check_ms_mbimex_version (device, 3, 0)) {
             MbimSubscriberReadyStatusFlag flags = MBIM_SUBSCRIBER_READY_STATUS_FLAG_NONE;
-            MbimSubscriberReadyState ready_state = MBIM_SUBSCRIBER_READY_STATE_NOT_INITIALIZED;
 
             if (!mbim_message_ms_basic_connect_v3_subscriber_ready_status_response_parse (
                     response,
@@ -322,7 +322,7 @@
         } else {
             if (!mbim_message_subscriber_ready_status_response_parse (
                     response,
-                    NULL, /* ready_state */
+                    &ready_state,
                     &self->priv->imsi,
                     &raw_iccid,
                     NULL, /* ready_info */
@@ -338,6 +338,17 @@
             self->priv->iccid = mm_3gpp_parse_iccid (raw_iccid, &self->priv->iccid_error);
     }
 
+    if (self->priv->preload_error || ready_state == MBIM_SUBSCRIBER_READY_STATE_NOT_INITIALIZED) {
+        self->priv->preload = FALSE;
+        if (self->priv->preload_error)
+            g_task_return_error (task, g_steal_pointer (&self->priv->preload_error));
+        else
+            g_task_return_new_error (task, MM_CORE_ERROR, MM_CORE_ERROR_WRONG_SIM_STATE,
+                                   "SIM is not ready: NotInitialized");
+
+        g_object_unref (task);
+        return;
+    }
     /* Go on to preload next contents */
     uicc_application_list (task, device);
 }
@@ -372,8 +383,9 @@
     cancellable = g_cancellable_new ();
     task = g_task_new (self, cancellable, callback, user_data);
 
-    /* only preload one single time; the info of the SIM should not
-     * change during runtime, unless we're handling hotplug events */
+    /* when preloading is successful, only preload one single time;
+     * the info of the SIM should not change during runtime, unless
+     * we're handling hotplug events */
     if (self->priv->preload) {
         g_task_return_boolean (task, TRUE);
         g_object_unref (task);
