diff --git a/TODO b/TODO
index 2a12f2f38..6ae0bac12 100644
--- a/TODO
+++ b/TODO
@@ -6,7 +6,6 @@ VERSION 1.2 TODO (Zsets, Integer encoding, Append only journal)
 Most of the features already implemented for this release. The following is a list of the missing things in order to release the first beta tar.gz:
 
 * Document "masterauth" in redis.conf, also merge the other related patch if it seems a safe one.
-* SETNX and MSETNX should use lookupKeWrite() in order to expire volatile keys when a write attempt is made.
 
 VERSION 1.4 TODO (Hash type)
 ============================
diff --git a/redis.c b/redis.c
index 302a2129d..371f78908 100644
--- a/redis.c
+++ b/redis.c
@@ -2979,7 +2979,7 @@ static void echoCommand(redisClient *c) {
 static void setGenericCommand(redisClient *c, int nx) {
     int retval;
 
-    deleteIfVolatile(c->db,c->argv[1]);
+    if (nx) deleteIfVolatile(c->db,c->argv[1]);
     retval = dictAdd(c->db->dict,c->argv[1],c->argv[2]);
     if (retval == DICT_ERR) {
         if (!nx) {