diff --git a/sites/all/modules/contrib/acl/acl.install b/sites/all/modules/contrib/acl/acl.install
index 4287d6d..dcfe549 100644
--- a/sites/all/modules/contrib/acl/acl.install
+++ b/sites/all/modules/contrib/acl/acl.install
@@ -97,7 +97,15 @@ function acl_schema() {
         'type'        => 'int',
         'size'        => 'small',
         'not null'    => TRUE,
-        'default'     => 0)),
+        'default'     => 0),
+      'record_empty'  => array(
+        'description' => 'Whether to write the node access record on empty users.',
+        'type'        => 'int',
+        'size'        => 'tiny',
+        'unsigned'    => TRUE,
+        'not null'    => TRUE,
+        'default'     => 0),
+    ),
     'primary key'     => array('acl_id', 'nid'),
     'indexes'         => array(
       'nid'           => array('nid')),
@@ -191,3 +199,19 @@ function acl_update_6002() {
   return $ret;
 }
 
+/**
+ * Add 'record_empty' column to {acl_node}.
+ */
+function acl_update_6003() {
+  $ret = array();
+  $spec = array(
+    'description' => 'Whether to write the node access record on empty users.',
+    'type'        => 'int',
+    'size'        => 'tiny',
+    'unsigned'    => TRUE,
+    'not null'    => TRUE,
+    'default'     => 0,
+  );
+  db_add_field($ret, 'acl_node', 'record_empty', $spec);
+  return $ret;
+}
diff --git a/sites/all/modules/contrib/acl/acl.module b/sites/all/modules/contrib/acl/acl.module
index ffd5769..5737e2e 100644
--- a/sites/all/modules/contrib/acl/acl.module
+++ b/sites/all/modules/contrib/acl/acl.module
@@ -78,9 +78,9 @@ function acl_edit_form($acl_id, $label = NULL, $new_acl = FALSE) {
 /**
  * Provide access control to a node based upon an ACL id.
  */
-function acl_node_add_acl($nid, $acl_id, $view, $update, $delete, $priority = 0) {
+function acl_node_add_acl($nid, $acl_id, $view, $update, $delete, $priority = 0, $record_empty = 0) {
   db_query("DELETE FROM {acl_node} WHERE acl_id = %d AND nid = %d", $acl_id, $nid);
-  db_query("INSERT INTO {acl_node} (acl_id, nid, grant_view, grant_update, grant_delete, priority) VALUES (%d, %d, %d, %d, %d, %d)", $acl_id, $nid, $view, $update, $delete, $priority);
+  db_query("INSERT INTO {acl_node} (acl_id, nid, grant_view, grant_update, grant_delete, priority, record_empty) VALUES (%d, %d, %d, %d, %d, %d, %d)", $acl_id, $nid, $view, $update, $delete, $priority, $record_empty);
 }
 
 /**
@@ -154,7 +154,7 @@ function acl_node_access_records($node) {
   $grants = array();
   while ($grant = db_fetch_array($result)) {
     if (module_exists($grant['module']) && module_invoke($grant['module'], 'enabled')) {
-      if (acl_has_users($grant['gid'])) {
+      if ($grant['record_empty'] || acl_has_users($grant['gid'])) {
         $grants[] = $grant;
       }
       else {
@@ -261,4 +261,3 @@ function _acl_get_explanation($text, $acl_id, $module, $name, $number, $users =
   }
   return $text;
 }
-
