Index: src/wp-includes/cache.php
===================================================================
--- src/wp-includes/cache.php	(revision 25419)
+++ src/wp-includes/cache.php	(working copy)
@@ -21,10 +21,10 @@
  * @param int $expire When the cache data should be expired
  * @return bool False if cache key and group already exist, true on success
  */
-function wp_cache_add($key, $data, $group = '', $expire = 0) {
+function wp_cache_add( $key, $data, $group = '', $expire = 0 ) {
 	global $wp_object_cache;
 
-	return $wp_object_cache->add($key, $data, $group, $expire);
+	return $wp_object_cache->add( $key, $data, $group, (int) $expire );
 }
 
 /**
@@ -154,10 +154,10 @@
  * @param int $expire When to expire the cache contents
  * @return bool False if not exists, true if contents were replaced
  */
-function wp_cache_replace($key, $data, $group = '', $expire = 0) {
+function wp_cache_replace( $key, $data, $group = '', $expire = 0 ) {
 	global $wp_object_cache;
 
-	return $wp_object_cache->replace($key, $data, $group, $expire);
+	return $wp_object_cache->replace( $key, $data, $group, (int) $expire );
 }
 
 /**
@@ -173,10 +173,10 @@
  * @param int $expire When to expire the cache contents
  * @return bool False on failure, true on success
  */
-function wp_cache_set($key, $data, $group = '', $expire = 0) {
+function wp_cache_set( $key, $data, $group = '', $expire = 0 ) {
 	global $wp_object_cache;
 
-	return $wp_object_cache->set($key, $data, $group, $expire);
+	return $wp_object_cache->set( $key, $data, $group, (int) $expire );
 }
 
 /**
@@ -320,7 +320,7 @@
 	 * @param int $expire When to expire the cache contents
 	 * @return bool False if cache key and group already exist, true on success
 	 */
-	function add( $key, $data, $group = 'default', $expire = '' ) {
+	function add( $key, $data, $group = 'default', $expire = 0 ) {
 		if ( wp_suspend_cache_addition() )
 			return false;
 
@@ -334,7 +334,7 @@
 		if ( $this->_exists( $id, $group ) )
 			return false;
 
-		return $this->set($key, $data, $group, $expire);
+		return $this->set( $key, $data, $group, (int) $expire );
 	}
 
 	/**
@@ -509,7 +509,7 @@
 	 * @param int $expire When to expire the cache contents
 	 * @return bool False if not exists, true if contents were replaced
 	 */
-	function replace( $key, $data, $group = 'default', $expire = '' ) {
+	function replace( $key, $data, $group = 'default', $expire = 0 ) {
 		if ( empty( $group ) )
 			$group = 'default';
 
@@ -520,7 +520,7 @@
 		if ( ! $this->_exists( $id, $group ) )
 			return false;
 
-		return $this->set( $key, $data, $group, $expire );
+		return $this->set( $key, $data, $group, (int) $expire );
 	}
 
 	/**
@@ -559,7 +559,7 @@
 	 * @param int $expire Not Used
 	 * @return bool Always returns true
 	 */
-	function set($key, $data, $group = 'default', $expire = '') {
+	function set( $key, $data, $group = 'default', $expire = 0 ) {
 		if ( empty( $group ) )
 			$group = 'default';
 
Index: src/wp-includes/option.php
===================================================================
--- src/wp-includes/option.php	(revision 25419)
+++ src/wp-includes/option.php	(working copy)
@@ -490,6 +490,7 @@
  */
 function set_transient( $transient, $value, $expiration = 0 ) {
 	$value = apply_filters( 'pre_set_transient_' . $transient, $value );
+	$expiration = (int) $expiration;
 
 	if ( wp_using_ext_object_cache() ) {
 		$result = wp_cache_set( $transient, $value, 'transient', $expiration );
@@ -1049,6 +1050,7 @@
  */
 function set_site_transient( $transient, $value, $expiration = 0 ) {
 	$value = apply_filters( 'pre_set_site_transient_' . $transient, $value );
+	$expiration = (int) $expiration;
 
 	if ( wp_using_ext_object_cache() ) {
 		$result = wp_cache_set( $transient, $value, 'site-transient', $expiration );
