diff -x .svn -aruN 2.6.2.src/wp-admin/includes/media.php 2.6.3.src/wp-admin/includes/media.php
--- 2.6.2.src/wp-admin/includes/media.php	2008-10-24 14:27:41.000000000 -0500
+++ 2.6.3.src/wp-admin/includes/media.php	2008-10-03 10:55:12.000000000 -0500
@@ -618,11 +618,11 @@
 			'input'      => 'html',
 			'html'       => "
 				<input type='text' name='attachments[$post->ID][url]' value='" . attribute_escape($file) . "' /><br />
-				<button type='button' class='button url-$post->ID' value=''>" . __('None') . "</button>
-				<button type='button' class='button url-$post->ID' value='" . attribute_escape($file) . "'>" . __('File URL') . "</button>
-				<button type='button' class='button url-$post->ID' value='" . attribute_escape($link) . "'>" . __('Post URL') . "</button>
+				<button type='button' class='button url-$post->ID' title=''>" . __('None') . "</button>
+				<button type='button' class='button url-$post->ID' title='" . attribute_escape($file) . "'>" . __('File URL') . "</button>
+				<button type='button' class='button url-$post->ID' title='" . attribute_escape($link) . "'>" . __('Post URL') . "</button>
 				<script type='text/javascript'>
-				jQuery('button.url-$post->ID').bind('click', function(){jQuery(this).siblings('input').val(this.value);});
+				jQuery('button.url-$post->ID').bind('click', function(){jQuery(this).siblings('input').val(jQuery(this).attr('title'));});
 				</script>\n",
 			'helps'      => __('Enter a link URL or click above for presets.'),
 		),
@@ -813,7 +813,7 @@
 		if ( !empty($field[$field['input']]) )
 			$item .= $field[$field['input']];
 		elseif ( $field['input'] == 'textarea' ) {
-			$item .= "<textarea type='text' id='$name' name='$name'>" . attribute_escape( $field['value'] ) . $aria_required . "</textarea>";
+			$item .= "<textarea type='text' id='$name' name='$name'" . $aria_required . ">" . htmlspecialchars( $field['value'] ) . "</textarea>";
 		} else {
 			$item .= "<input type='text' id='$name' name='$name' value='" . attribute_escape( $field['value'] ) . "'" . $aria_required . "/>";
 		}
diff -x .svn -aruN 2.6.2.src/wp-content/plugins/akismet/akismet.php 2.6.3.src/wp-content/plugins/akismet/akismet.php
--- 2.6.2.src/wp-content/plugins/akismet/akismet.php	2008-10-24 14:27:40.000000000 -0500
+++ 2.6.3.src/wp-content/plugins/akismet/akismet.php	2008-10-17 02:58:49.000000000 -0500
@@ -2,8 +2,8 @@
 /*
 Plugin Name: Akismet
 Plugin URI: http://akismet.com/
-Description: Akismet checks your comments against the Akismet web service to see if they look like spam or not. You need a <a href="http://wordpress.com/api-keys/">WordPress.com API key</a> to use it. You can review the spam it catches under "Comments." To show off your Akismet stats just put <code>&lt;?php akismet_counter(); ?></code> in your template. See also: <a href="http://wordpress.org/extend/plugins/stats/">WP Stats plugin</a>.
-Version: 2.1.8
+Description: Akismet checks your comments against the Akismet web service to see if they look like spam or not. You need a <a href="http://wordpress.com/api-keys/">WordPress.com API key</a> to use it. You can review the spam it catches under "Comments." To show off your Akismet stats just put <code>&lt;?php akismet_counter(); ?&gt;</code> in your template. See also: <a href="http://wordpress.org/extend/plugins/stats/">WP Stats plugin</a>.
+Version: 2.2.1
 Author: Matt Mullenweg
 Author URI: http://ma.tt/
 */
@@ -21,6 +21,7 @@
 
 	$akismet_api_port = 80;
 	add_action('admin_menu', 'akismet_config_page');
+	add_action('admin_menu', 'akismet_stats_page');
 }
 add_action('init', 'akismet_init');
 
@@ -137,6 +138,44 @@
 <?php
 }
 
+function akismet_stats_page() {
+	if ( function_exists('add_submenu_page') )
+		add_submenu_page('index.php', __('Akismet Stats'), __('Akismet Stats'), 'manage_options', 'akismet-stats-display', 'akismet_stats_display');
+
+}
+
+function akismet_stats_script() {
+	?>
+<script type="text/javascript">
+function resizeIframe() {
+    var height = document.documentElement.clientHeight;
+    height -= document.getElementById('akismet-stats-frame').offsetTop;
+    height += 100; // magic padding
+    
+    document.getElementById('akismet-stats-frame').style.height = height +"px";
+    
+};
+function resizeIframeInit() {
+	document.getElementById('akismet-stats-frame').onload = resizeIframe;
+	window.onresize = resizeIframe;
+}
+addLoadEvent(resizeIframeInit);
+</script><?php
+}
+
+add_action('admin_head-dashboard_page_akismet-stats-display', 'akismet_stats_script');
+
+function akismet_stats_display() {
+	global $akismet_api_host, $akismet_api_port, $wpcom_api_key;
+	$blog = urlencode( get_option('home') );
+	$url = "http://".get_option('wordpress_api_key').".web.akismet.com/1.0/user-stats.php?blog={$blog}";
+	?>
+	<div class="wrap">
+	<iframe src="<?php echo $url; ?>" width="100%" height="100%" frameborder="0" id="akismet-stats-frame"></iframe>
+	</div>
+	<?php
+}
+
 function akismet_verify_key( $key ) {
 	global $akismet_api_host, $akismet_api_port, $wpcom_api_key;
 	$blog = urlencode( get_option('home') );
@@ -263,6 +302,9 @@
 add_action('edit_comment', 'akismet_submit_spam_comment');
 add_action('preprocess_comment', 'akismet_auto_check_comment', 1);
 
+function akismet_spamtoham( $comment ) { akismet_submit_nonspam_comment( $comment->comment_ID ); }
+add_filter( 'comment_spam_to_approved', 'akismet_spamtoham' );
+
 // Total spam in queue
 // get_option( 'akismet_spam_count' ) is the total caught ever
 function akismet_spam_count( $type = false ) {
diff -x .svn -aruN 2.6.2.src/wp-includes/class-snoopy.php 2.6.3.src/wp-includes/class-snoopy.php
--- 2.6.2.src/wp-includes/class-snoopy.php	2008-10-24 14:27:40.000000000 -0500
+++ 2.6.3.src/wp-includes/class-snoopy.php	2008-10-23 17:42:36.000000000 -0500
@@ -1,22 +1,12 @@
 <?php
-/**
- * Snoopy - the PHP net client
- * @author Monte Ohrt <monte@ispi.net>
- * @copyright 1999-2000 ispi, all rights reserved
- * @version 1.01
- * @license GNU Lesser GPL
- * @link http://snoopy.sourceforge.net/
- * @package Snoopy
- */
-
 if ( !in_array('Snoopy', get_declared_classes() ) ) :
-/**
- * Snoopy - the PHP net client
- *
- * @author Monte Ohrt <monte@ispi.net>
- * @copyright (c): 1999-2000 ispi, all rights reserved
- * @version 1.01
- *
+/*************************************************
+
+Snoopy - the PHP net client
+Author: Monte Ohrt <monte@ispi.net>
+Copyright (c): 1999-2008 New Digital Group, all rights reserved
+Version: 1.2.4
+
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
  * License as published by the Free Software Foundation; either
@@ -30,19 +20,15 @@
  * You should have received a copy of the GNU Lesser General Public
  * License along with this library; if not, write to the Free Software
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- * You may contact the author of Snoopy by e-mail at:
- * monte@ispi.net
- *
- * Or, write to:
- * Monte Ohrt
- * CTO, ispi
- * 237 S. 70th suite 220
- * Lincoln, NE 68510
- *
- * @link http://snoopy.sourceforge.net/ The latest version of Snoopy can be
- *		obtained
- */
+
+You may contact the author of Snoopy by e-mail at:
+monte@ohrt.com
+
+The latest version of Snoopy can be obtained from:
+http://snoopy.sourceforge.net/
+
+*************************************************/
+
 class Snoopy
 {
 	/**** Public variables ****/
@@ -56,7 +42,7 @@
 	var $proxy_user		=	"";					// proxy user to use
 	var $proxy_pass		=	"";					// proxy password to use
 
-	var $agent			=	"Snoopy v1.2.3";	// agent we masquerade as
+	var $agent			=	"Snoopy v1.2.4";	// agent we masquerade as
 	var	$referer		=	"";					// referer info to pass
 	var $cookies		=	array();			// array of cookies to pass
 												// $cookies["username"]="joe";
@@ -85,7 +71,7 @@
 	var $error			=	"";					// error messages sent here
 	var	$response_code	=	"";					// response code returned from server
 	var	$headers		=	array();			// headers returned from server sent here
-	var	$maxlength		=	8192;				// max return data length (body)
+	var	$maxlength		=	500000;				// max return data length (body)
 	var $read_timeout	=	0;					// timeout on read operations, in seconds
 												// supported only since PHP 4 Beta 4
 												// set to 0 to disallow timeouts
@@ -727,13 +713,13 @@
 							chr(176),
 							chr(39),
 							chr(128),
-							"ä",
-							"ö",
-							"ü",
-							"Ä",
-							"Ö",
-							"Ü",
-							"ß",
+							"",
+							"",
+							"",
+							"",
+							"",
+							"",
+							"",
 						);
 
 		$text = preg_replace($search,$replace,$document);
@@ -1020,8 +1006,7 @@
 
 		$headerfile = tempnam($temp_dir, "sno");
 
-		$safer_URI = strtr( $URI, "\"", " " ); // strip quotes from the URI to avoid shell access
-		exec(escapeshellcmd($this->curl_path." -D \"$headerfile\"".$cmdline_params." \"".$safer_URI."\""),$results,$return);
+		exec($this->curl_path." -k -D \"$headerfile\"".$cmdline_params." \"".escapeshellcmd($URI)."\"",$results,$return);
 
 		if($return)
 		{
@@ -1245,9 +1230,7 @@
 						if (!is_readable($file_name)) continue;
 
 						$fp = fopen($file_name, "r");
-						while (!feof($fp)) {
-							$file_content .= fread($fp, filesize($file_name));
-						}
+						$file_content = fread($fp, filesize($file_name));
 						fclose($fp);
 						$base_name = basename($file_name);
 
@@ -1264,5 +1247,4 @@
 	}
 }
 endif;
-
 ?>
diff -x .svn -aruN 2.6.2.src/wp-includes/version.php 2.6.3.src/wp-includes/version.php
--- 2.6.2.src/wp-includes/version.php	2008-10-24 14:27:40.000000000 -0500
+++ 2.6.3.src/wp-includes/version.php	2008-10-23 16:19:30.000000000 -0500
@@ -8,7 +8,7 @@
  *
  * @global string $wp_version
  */
-$wp_version = '2.6.2';
+$wp_version = '2.6.3';
 
 /**
  * Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.
