Index: wp-admin/includes/plugin.php
===================================================================
--- wp-admin/includes/plugin.php	(revision 13164)
+++ wp-admin/includes/plugin.php	(working copy)
@@ -359,6 +359,10 @@
 			wp_redirect(add_query_arg('_error_nonce', wp_create_nonce('plugin-activation-error_' . $plugin), $redirect)); // we'll override this later if the plugin can be included without fatal error
 		ob_start();
 		@include(WP_PLUGIN_DIR . '/' . $plugin);
+		if ( ob_get_length() > 0 ) {
+			$output = ob_get_clean();
+			return new WP_Error('unexpected_output', __('The plugin generated unexpected output.') . '<br />' . htmlspecialchars($output));
+		}
 		do_action( 'activate_plugin', trim( $plugin) );
 		if ( $network_wide ) {
 			$current[$plugin] = time();
