Index: wp-includes/functions.php
===================================================================
--- wp-includes/functions.php	(revision 3657)
+++ wp-includes/functions.php	(working copy)
@@ -365,7 +365,7 @@
 		return true;
 	}
 
-	if ( is_array($newvalue) || is_object($newvalue) )
+	if ( strpos($_SERVER['REQUEST_URI'], '/wp-admin/options.php') === false )
 		$newvalue = serialize($newvalue);
 
 	wp_cache_set($option_name, $newvalue, 'options');
@@ -395,7 +395,7 @@
 	if ( false !== get_option($name) )
 		return;
 
-	if ( is_array($value) || is_object($value) )
+	if ( strpos($_SERVER['REQUEST_URI'], '/wp-admin/options.php') === false )
 		$value = serialize($value);
 
 	wp_cache_set($name, $value, 'options');
@@ -2164,9 +2164,7 @@
 	if ( !is_numeric( $user_id ) )
 		return false;
 	$meta_key = preg_replace('|[^a-z0-9_]|i', '', $meta_key);
-
-	if ( is_array($meta_value) || is_object($meta_value) )
-		$meta_value = serialize($meta_value);
+	$meta_value = serialize($meta_value);
 	$meta_value = trim( $meta_value );
 
 	if (empty($meta_value)) {

