diff --git a/lib/db/mysql.js b/lib/db/mysql.js
index 19a6aa4ff01375917223f96af897e89d60817de5..b984dcbf438fd4a6bcaf3cb2c26f0666b66b9228 100644
--- a/lib/db/mysql.js
+++ b/lib/db/mysql.js
@@ -244,8 +244,8 @@ exports.stageUser = function(email, cb) {
   secrets.generate(48, function(secret) {
     // overwrite previously staged users
     client.query('INSERT INTO staged (secret, new_acct, email) VALUES(?,TRUE,?) ' +
-                 'ON DUPLICATE KEY UPDATE secret=?, existing_user=NULL, new_acct=TRUE, ts=NOW()',
-                 [ secret, email, secret],
+                 'ON DUPLICATE KEY UPDATE secret=VALUES(secret), existing_user=NULL, new_acct=TRUE, ts=NOW()',
+                 [ secret, email ],
                  function(err) {
                    cb(err, err ? undefined : secret);
                  });
@@ -424,8 +424,8 @@ exports.stageEmail = function(existing_user, new_email, cb) {
   secrets.generate(48, function(secret) {
     // overwrite previously staged users
     client.query('INSERT INTO staged (secret, new_acct, existing_user, email) VALUES(?,FALSE,?,?) ' +
-                 'ON DUPLICATE KEY UPDATE secret=?, existing_user=?, new_acct=FALSE, ts=NOW()',
-                 [ secret, existing_user, new_email, secret, existing_user],
+                 'ON DUPLICATE KEY UPDATE secret=VALUES(secret), existing_user=VALUES(existing_user), new_acct=FALSE, ts=NOW()',
+                 [ secret, existing_user, new_email ],
                  function(err) {
                    cb(err, err ? undefined : secret);
                  });