diff -up ed_classified_dev/ed_classified.module ed_classified/ed_classified.module
--- ed_classified_dev/ed_classified.module	2008-02-23 21:02:58.000000000 -0500
+++ ed_classified/ed_classified.module	2009-01-25 18:39:04.000000000 -0500
@@ -31,6 +31,7 @@ define('EDI_CLASSIFIED_MODULE_NAME', 'ed
 define('EDI_CLASSIFIED_PATH_NAME', 'ed-classified');  
 define('EDI_CLASSIFIED_MODULE_VERSION', '$Id: ed_classified.module,v 1.1.4.45 2008/02/24 02:02:58 inactivist Exp $');
 define('EDI_CLASSIFIED_VAR_DEF_BODYLEN_LIMIT', 500);
+define('EDI_CLASSIFIED_VAR_DEF_EXPIRE', TRUE);
 define('EDI_CLASSIFIED_VAR_DEF_EXPIRATION_DAYS', 30);
 define('EDI_CLASSIFIED_VAR_DEF_PURGE_AGE', 15);               // how many days after expiration to purge ads?
 define('EDI_CLASSIFIED_VAR_DEF_AD_EXPIRATION_EMAIL_WARNING_DAYS', 7);
@@ -102,15 +103,17 @@ function ed_classified_block($op = 'list
  * Implementation of hook_cron().
  */
 function ed_classified_cron() {
-  $time = time();
-  /* Process reminder mails as needed */
-  if (_ed_classified_variable_get('send_email_reminders', EDI_CLASSIFIED_VAR_DEF_SEND_EMAIL_REMINDERS)) {
-    _ed_classified_process_notification_emails($time);
-  }
-  _ed_classified_expire_ads($time);
+  if (_ed_classified_variable_get('default_expire', EDI_CLASSIFIED_VAR_DEF_EXPIRE)) {
+    $time = time();
+    /* Process reminder mails as needed */
+    if (_ed_classified_variable_get('send_email_reminders', EDI_CLASSIFIED_VAR_DEF_SEND_EMAIL_REMINDERS)) {
+      _ed_classified_process_notification_emails($time);
+    }
+    _ed_classified_expire_ads($time);
 
-  // purge old ads if possible
-  _ed_classified_purge();
+    // purge old ads if possible
+    _ed_classified_purge();
+  }
 }
 
 
@@ -481,7 +484,7 @@ function ed_classified_form(&$node,&$par
   $form['body_filter']['filter'] = filter_form($node->format);
 
   /* Set up expiration info fieldset */
-  if ($node->expires_on >0) {
+  if ((_ed_classified_variable_get('default_expire', EDI_CLASSIFIED_VAR_DEF_EXPIRE)) && ($node->expires_on >0)) {
     $form['expiration_fieldset'] = array('#type'=>'fieldset', '#title'=>t('Ad Expiration'), '#collapsible'=> TRUE, '#collapsed'=>FALSE, '#weight'=>-1);
     $form['expiration_fieldset']['expires_on_text'] = array('#value' => theme('ed_classified_ending_date', $node->expires_on), '#weight'=>-15);
     // TODO: fix this - using hidden field to preserve value
diff -up ed_classified_dev/ed_classified_settings.inc ed_classified/ed_classified_settings.inc
--- ed_classified_dev/ed_classified_settings.inc	2007-08-12 04:00:29.000000000 -0400
+++ ed_classified/ed_classified_settings.inc	2009-01-25 18:24:09.000000000 -0500
@@ -27,6 +27,12 @@ $form['expiration'] = array(
     '#collapsed' => FALSE,
     '#title' => t('Ad Duration and Expiration'),
   );
+  $form['expiration'][ _ed_classified_cfg_varname('default_expire')] = array(
+    '#type' => 'checkbox',
+    '#title'=>t('Use ed_classified to expire ads and notify users.'),
+    '#default_value' => _ed_classified_variable_get('default_expire', EDI_CLASSIFIED_VAR_DEF_EXPIRE),
+    '#description'=>t('If checked (the default) ads will be expired and users notified by the ed_classified module. Only disable if another module is configured to handle expiry and notification.'),
+    );
   $form['expiration'][ _ed_classified_cfg_varname('default_ad_duration')] = array('#type' => 'textfield', '#title'=>t('New ad default duration (days)'), '#default_value' => _ed_classified_variable_get('default_ad_duration', EDI_CLASSIFIED_VAR_DEF_EXPIRATION_DAYS), '#size'=>'3', '#maxlength'=>3, '#description'=>t('Ads will auto-expire this many days after the ad is created, unless you override this on a per-category basis (see below.).  Requires cron.'), '#required'=>TRUE);
 
   $form['expiration'][ _ed_classified_cfg_varname('ad_expired_purge_age')] = array('#type' => 'textfield', '#title'=>t('Expired ad deletion grace period'), '#default_value' => _ed_classified_variable_get('ad_expired_purge_age', EDI_CLASSIFIED_VAR_DEF_PURGE_AGE), '#size'=>'3', '#maxlength'=>3, '#description'=>t('Expired ads are subject to purging (deletion) this many days after expiration.'), '#required'=>TRUE);
diff -up ed_classified_dev/ed_classified_themefuncs.inc ed_classified/ed_classified_themefuncs.inc
--- ed_classified_dev/ed_classified_themefuncs.inc	2007-08-12 04:00:29.000000000 -0400
+++ ed_classified/ed_classified_themefuncs.inc	2009-01-25 18:23:56.000000000 -0500
@@ -190,15 +190,19 @@ function theme_ed_classified_body($node)
  * Get a formatted div with a readable, friendly ad expiration date.
  */
 function theme_ed_classified_ending_date($ad_expiration_date) {
-  $class = 'classified-expiration-info'; // standard expiration formatting
-  $str = _ed_classified_get_ending_date_string($ad_expiration_date);
-  // set style for ending soon
-  if (_ed_classified_ad_expires_soon($ad_expiration_date)) {
-    $class = 'classified-expiration-expires_soon'; // TODO: crappy name, fix this
+  if (_ed_classified_variable_get('default_expire', EDI_CLASSIFIED_VAR_DEF_EXPIRE)) {
+    $class = 'classified-expiration-info'; // standard expiration formatting
+    $str = _ed_classified_get_ending_date_string($ad_expiration_date);
+    // set style for ending soon
+    if (_ed_classified_ad_expires_soon($ad_expiration_date)) {
+      $class = 'classified-expiration-expires_soon'; // TODO: crappy name, fix this
+    }
+    if (_ed_classified_ad_expired_already($ad_expiration_date)) {
+      $class = 'classified-expiration-expired'; // TODO: crappy name, fix this
+    }
+    return "<span class='$class'>" . $str . '</span>';
+  } else {
+    return '&nbsp;';
   }
-  if (_ed_classified_ad_expired_already($ad_expiration_date)) {
-    $class = 'classified-expiration-expired'; // TODO: crappy name, fix this
-  }
-  return "<span class='$class'>" . $str . '</span>';
 }
 
