diff -Naur a/wp-includes/option.php b/wp-includes/option.php
--- a/wp-includes/option.php	2013-10-02 23:43:10.000000000 +0300
+++ b/wp-includes/option.php	2013-10-25 23:34:00.632217793 +0300
@@ -236,6 +236,7 @@
 
 	$serialized_value = maybe_serialize( $value );
 
+	do_action( 'update_option', $option, $old_value, $value );
 	$result = $wpdb->update( $wpdb->options, array( 'option_value' => $serialized_value ), array( 'option_name' => $option ) );
 	if ( ! $result )
 		return false;
@@ -246,7 +247,6 @@
 		wp_cache_set( 'notoptions', $notoptions, 'options' );
 	}
 
-	do_action( 'update_option', $option, $old_value, $value );
 	if ( ! defined( 'WP_INSTALLING' ) ) {
 		$alloptions = wp_load_alloptions();
 		if ( isset( $alloptions[$option] ) ) {
