Index: src/wp-includes/option.php
===================================================================
--- src/wp-includes/option.php	(revision 27309)
+++ src/wp-includes/option.php	(working copy)
@@ -481,9 +481,18 @@
 			}
 			$result = add_option( $transient, $value, '', $autoload );
 		} else {
-			if ( $expiration )
-				update_option( $transient_timeout, time() + $expiration );
-			$result = update_option( $transient, $value );
+			$skipupdate = false;
+			if ( $expiration ) {
+				if (false === get_option($transient_timeout)) {
+					delete_option($transient);
+					add_option( $transient_timeout, time() + $expiration, '', 'no' );
+					$result = add_option( $transient, $value, '', 'no' );
+					$skipupdate = true;
+				} else 
+				  	update_option( $transient_timeout, time() + $expiration );
+			}
+			if (false === $skipupdate)
+				$result = update_option( $transient, $value );
 		}
 	}
 	if ( $result ) {
