diff --git a/modules/node/node.module b/modules/node/node.module
index 4cc6bdf..7907a4b 100644
--- a/modules/node/node.module
+++ b/modules/node/node.module
@@ -726,6 +726,9 @@ function node_load($param = array(), $revision = NULL, $reset = NULL) {
     $arguments[] = $param;
   }
   elseif (is_array($param)) {
+    if ($cachable && count($param) == 1 && isset($param['nid']) && isset($nodes[$param['nid']])) {
+      return is_object($nodes[$param['nid']]) ? drupal_clone($nodes[$param['nid']]) : $nodes[$param['nid']];
+    }
     // Turn the conditions into a query.
     foreach ($param as $key => $value) {
       $cond[] = 'n.'. db_escape_table($key) ." = '%s'";
