Index: privacy.admin.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/privacy/privacy.admin.inc,v
retrieving revision 1.1
diff -u -p -r1.1 privacy.admin.inc
--- privacy.admin.inc	28 Jan 2009 23:38:34 -0000	1.1
+++ privacy.admin.inc	31 Aug 2010 02:59:39 -0000
@@ -47,6 +47,13 @@ function privacy_settings() {
         '#default_value' => variable_get('privacy_'. $type['type'], array()),
         '#options' => $fields,
       );
+      $form[$fieldset]['privacy_'. $type['type'] .'_defaults'] = array(
+        '#type' => 'checkboxes',
+        '#title' => t('Field defaults'),
+        '#default_value' => variable_get('privacy_'. $type['type'] .'_defaults', array()),
+        '#options' => $fields,
+        '#description' => t('By default all checkboxes will be off, meaning that they will be viewable by everyone.  This allows individual fields to be set to default to on, i.e. private.'),
+      );
     }
   }
 
Index: privacy.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/privacy/privacy.module,v
retrieving revision 1.1.2.1
diff -u -p -r1.1.2.1 privacy.module
--- privacy.module	31 Jan 2009 12:35:49 -0000	1.1.2.1
+++ privacy.module	31 Aug 2010 02:59:39 -0000
@@ -163,7 +163,21 @@ function privacy_is_private($field, $nid
       return TRUE;
     }
     else {
-      return FALSE;
+      // This should be a free operation.
+      $node = node_load($nid);
+      
+      // Get the defaults for this content type.
+      $defaults = variable_get('privacy_'. $type .'_defaults', array());
+      
+      // If the default value was set, return it.
+      if (is_array($defaults) && array_key_exists($field, $defaults)) {
+        return (bool) $defaults[$fiel];
+      }
+
+      // If nothing was stored, or didn't exist, return the legacy value.
+      else {
+        return FALSE;
+      }
     }
   }
 }
