--- a/wp-includes/option.php
+++ b/wp-includes/option.php
@@ -461,9 +461,20 @@
 		$value = clone $value;
 	}
 
-	$value     = sanitize_option( $option, $value );
 	$old_value = get_option( $option );
 
+	$notoptions = wp_cache_get( 'notoptions', 'options' );
+
+	if ( is_array( $notoptions ) && isset( $notoptions[ $option ] ) ) {
+		// Default setting for new options is 'yes'.
+		if ( null === $autoload ) {
+			$autoload = 'yes';
+		}
+
+		return add_option( $option, $value, '', $autoload );
+	}
+
+	$value = sanitize_option( $option, $value );
+
 	/**
 	 * Filters a specific option before its value is (maybe) serialized and updated.
 	 *
@@ -502,16 +513,6 @@
 		return false;
 	}
 
-	/** This filter is documented in wp-includes/option.php */
-	if ( apply_filters( "default_option_{$option}", false, $option, false ) === $old_value ) {
-		// Default setting for new options is 'yes'.
-		if ( null === $autoload ) {
-			$autoload = 'yes';
-		}
-
-		return add_option( $option, $value, '', $autoload );
-	}
-
 	$serialized_value = maybe_serialize( $value );
 
 	/**
