Index: wp-includes/functions.php
===================================================================
--- wp-includes/functions.php	(revision 15646)
+++ wp-includes/functions.php	(working copy)
@@ -228,33 +228,33 @@
  * @return bool False if not serialized and true if it was.
  */
 function is_serialized( $data ) {
+	static $strpbrk_exists;
 	// if it isn't a string, it isn't serialized
 	if ( !is_string( $data ) )
 		return false;
 	$data = trim( $data );
  	if ( 'N;' == $data )
 		return true;
-	if ( function_exists('strpbrk') ) {
-		if ( strlen($data) > 1 && strpbrk($data,'adObis') == $data && $data[1] == ':' ) {
-			$badions = array();
-			$badions[1] = $data[0];
-		} else {
-			return false;
-		}
-	} elseif ( !preg_match( '/^([adObis]):/', $data, $badions ) ) {
+	if ( strlen( $data ) < 4 )
 		return false;
+	$token = $data[0];
+	isset( $strpbrk_exists ) || $strpbrk_exists = function_exists( 'strpbrk' );
+	if ( $strpbrk_exists && ( ':' !== $data[1] || strpbrk( $data, 'adObis' ) !== $data ) ) {
+		return false;
+	} elseif ( !preg_match( '/^([adObis]):/', $data ) ) {
+		return false;
 	}
-	switch ( $badions[1] ) {
+	switch ( $token ) {
 		case 'a' :
 		case 'O' :
 		case 's' :
-			if ( preg_match( "/^{$badions[1]}:[0-9]+:.*[;}]\$/s", $data ) )
+			if ( preg_match( "/^{$token}:[0-9]+:.*[;}]\$/s", $data ) )
 				return true;
 			break;
 		case 'b' :
 		case 'i' :
 		case 'd' :
-			if ( preg_match( "/^{$badions[1]}:[0-9.E-]+;\$/", $data ) )
+			if ( preg_match( "/^{$token}:[0-9.E-]+;\$/", $data ) )
 				return true;
 			break;
 	}
