diff --git a/modules/node/node.module b/modules/node/node.module
index 68e56f3af36283ce7ced7aca2f66b7efa8d4fa3f..ce9f388c5ec773f9552bf6bc1e626e62e2e10ca5 100644
--- a/modules/node/node.module
+++ b/modules/node/node.module
@@ -649,7 +649,7 @@ function node_save(&$node) {
                      'title' => "'%s'", 'body' => "'%s'",
                      'teaser' => "'%s'", 'timestamp' => '%d',
                      'uid' => '%d', 'format' => '%d');
-  if (!empty($node->log) || $node->is_new) {
+  if (!empty($node->log) || $node->is_new || $node->revision) {
     // Only store the log message if there's something to store; this prevents
     // existing log messages from being unintentionally overwritten by a blank
     // message. A new revision will have an empty log message (or $node->log).