diff --git wp-includes/option.php wp-includes/option.php
index 1d2c35d..571b055 100644
--- wp-includes/option.php
+++ wp-includes/option.php
@@ -271,7 +271,7 @@ function update_option( $option, $value ) {
 		return false;
 
 	if ( false === $old_value )
-		return add_option( $option, $value );
+		return add_option( $option, $value, '', 'yes', false );
 
 	$serialized_value = maybe_serialize( $value );
 
@@ -349,9 +349,10 @@ function update_option( $option, $value ) {
  * @param mixed $value Optional. Option value. Must be serializable if non-scalar. Expected to not be SQL-escaped.
  * @param mixed $deprecated Optional. Description. Not used anymore.
  * @param bool $autoload Optional. Default is enabled. Whether to load the option when WordPress starts up.
+ * @param boolean $sanitize Whether to sanitize the option value.
  * @return bool False if option was not added and true if option was added.
  */
-function add_option( $option, $value = '', $deprecated = '', $autoload = 'yes' ) {
+function add_option( $option, $value = '', $deprecated = '', $autoload = 'yes', $sanitize = true ) {
 	global $wpdb;
 
 	if ( !empty( $deprecated ) )
@@ -366,7 +367,9 @@ function add_option( $option, $value = '', $deprecated = '', $autoload = 'yes' )
 	if ( is_object($value) )
 		$value = clone $value;
 
-	$value = sanitize_option( $option, $value );
+	if ( $sanitize ) {
+		$value = sanitize_option( $option, $value );
+	}
 
 	// Make sure the option doesn't already exist. We can check the 'notoptions' cache before we ask for a db query
 	$notoptions = wp_cache_get( 'notoptions', 'options' );
