Index: system_module.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/util/system_module.module,v
retrieving revision 1.4
diff -u -r1.4 system_module.module
--- system_module.module	1 May 2008 18:02:34 -0000	1.4
+++ system_module.module	30 May 2008 00:27:08 -0000
@@ -45,16 +45,23 @@
 
 function system_module_settings_submit($form, &$form_state) {
   global $user;
+
   $values = $form_state['values'];
   foreach ($values['system_module_cfg'] as $index => $value) {
     if ($value === 0) {
       unset($values['system_module_cfg'][$index]);
     }
   }
-  //must replace this with drupal_write_record at a later date (once i figure out how to use it correctly!)
-  db_query("REPLACE INTO {system_module_users} SET uid = %d, data = '%s'", $user->uid, serialize($values['system_module_cfg']));
 
-  //save user settings
+  $data = serialize($values['system_module_cfg']);
+  // Update.
+  db_query("UPDATE {system_module_users} SET data = '%s' WHERE uid = %d", $data, $user->uid);
+  if (!db_affected_rows()) {
+    // Insert.
+    @db_query("INSERT INTO {system_module_users} (uid, data) VALUES (%d, '%s')", $user->uid, $data);
+  }
+
+  // Save user settings.
   user_save($user, array('system_module_cfg' => $values['system_module_cfg']));
 }
 
