diff --git a/install.c b/install.c
index 3a37b4a..5768960 100644
--- a/install.c
+++ b/install.c
@@ -106,7 +106,7 @@
     const ZipEntry* binary_entry =
             mzFindZipEntry(zip, ASSUMED_UPDATE_BINARY_NAME);
     if (binary_entry == NULL) {
-        return INSTALL_UPDATE_BINARY_MISSING;
+        return INSTALL_ERROR;
     }
 
     char* binary = "/tmp/update_binary";
@@ -242,17 +242,21 @@
     // Update should take the rest of the progress bar.
     ui_print("Installing update...\n");
 
-    int result = try_update_binary(path, zip);
-    if (result == INSTALL_UPDATE_BINARY_MISSING)
-    {
-        if (register_package_root(zip, path) < 0) {
-            LOGE("Can't register package root\n");
-            return INSTALL_ERROR;
-        }
-        const ZipEntry *script_entry;
-        script_entry = find_update_script(zip);
-        result = handle_update_script(zip, script_entry);
+    // Try installing via the update-script first, because we 
+    // have more control over the asserts it may contain.
+    // If it does not exist, try the update-binary.
+    if (register_package_root(zip, path) < 0) {
+        LOGE("Can't register package root\n");
+        return INSTALL_ERROR;
     }
+    const ZipEntry *script_entry;
+    script_entry = find_update_script(zip);
+    int result = handle_update_script(zip, script_entry);
+    if (result == INSTALL_UPDATE_SCRIPT_MISSING)
+    {
+        result = try_update_binary(path, zip);
+    }
+    
     register_package_root(NULL, NULL);  // Unregister package root
     return result;
 }
