diff --git a/modules/system.module b/modules/system.module
index 94cd94035869eea34c736ab29ec071ecdc6cd9e7..e8e5444874b08e9f7f959772773f5c33f48be7f0 100644
--- a/modules/system.module
+++ b/modules/system.module
@@ -891,8 +891,13 @@ function system_modules() {
     }
 
     // Update the contents of the system table:
-    db_query("DELETE FROM {system} WHERE name = '%s' AND type = '%s'", $file->name, 'module');
-    db_query("INSERT INTO {system} (name, description, type, filename, status, throttle, bootstrap, schema_version) VALUES ('%s', '%s', '%s', '%s', %d, %d, %d, %d)", $file->name, $file->description, 'module', $file->filename, $file->status, $file->throttle, $bootstrap, $file->schema_version);
+    if (isset($file->status)) {
+      db_query("UPDATE {system} SET description = '%s', filename = '%s', bootstrap = %d WHERE name = '%s'", $file->description, $file->filename, $bootstrap, $file->name);
+    }
+    else {
+      // This is a new module.
+      db_query("INSERT INTO {system} (name, description, type, filename, status, throttle, bootstrap) VALUES ('%s', '%s', '%s', '%s', %d, %d, %d)", $file->name, $file->description, 'module', $file->filename, $file->status, $file->throttle, $bootstrap);
+    }
   }
 
 
diff --git a/modules/system/system.module b/modules/system/system.module
index 94cd94035869eea34c736ab29ec071ecdc6cd9e7..e8e5444874b08e9f7f959772773f5c33f48be7f0 100644
--- a/modules/system/system.module
+++ b/modules/system/system.module
@@ -891,8 +891,13 @@ function system_modules() {
     }
 
     // Update the contents of the system table:
-    db_query("DELETE FROM {system} WHERE name = '%s' AND type = '%s'", $file->name, 'module');
-    db_query("INSERT INTO {system} (name, description, type, filename, status, throttle, bootstrap, schema_version) VALUES ('%s', '%s', '%s', '%s', %d, %d, %d, %d)", $file->name, $file->description, 'module', $file->filename, $file->status, $file->throttle, $bootstrap, $file->schema_version);
+    if (isset($file->status)) {
+      db_query("UPDATE {system} SET description = '%s', filename = '%s', bootstrap = %d WHERE name = '%s'", $file->description, $file->filename, $bootstrap, $file->name);
+    }
+    else {
+      // This is a new module.
+      db_query("INSERT INTO {system} (name, description, type, filename, status, throttle, bootstrap) VALUES ('%s', '%s', '%s', '%s', %d, %d, %d)", $file->name, $file->description, 'module', $file->filename, $file->status, $file->throttle, $bootstrap);
+    }
   }