Index: wp-includes/default-widgets.php
===================================================================
--- wp-includes/default-widgets.php	(revision 11605)
+++ wp-includes/default-widgets.php	(working copy)
@@ -966,17 +966,28 @@
 		extract($args);
 		$title = apply_filters('widget_title', empty($instance['title']) ? __('Tags') : $instance['title']);
 
+		$largest = isset($instance['largest']) ? $instance['largest'] : 22;
+		$number = isset($instance['number']) ? $instance['number'] : 0;
+		$format = isset($instance['format']) ? $instance['format'] : 'flat';
+		$orderby = isset($instance['orderby']) ? $instance['orderby'] : 'name';
+		$order = isset($instance['order']) ? $instance['order'] : 'ASC';
+
 		echo $before_widget;
 		if ( $title )
 			echo $before_title . $title . $after_title;
 		echo '<div>';
-		wp_tag_cloud(apply_filters('widget_tag_cloud_args', array()));
+		wp_tag_cloud(apply_filters('widget_tag_cloud_args', array('largest' => $largest, 'number' => $number, 'format' => $format, 'orderby' => $orderby, 'order' => $order )));
 		echo "</div>\n";
 		echo $after_widget;
 	}
 
 	function update( $new_instance, $old_instance ) {
 		$instance['title'] = strip_tags(stripslashes($new_instance['title']));
+		$instance['largest'] = $new_instance['largest'];
+		$instance['number'] = $new_instance['number'];
+		$instance['format'] = strip_tags(stripslashes($new_instance['format']));
+		$instance['orderby'] = strip_tags(stripslashes($new_instance['orderby']));
+		$instance['order'] = strip_tags(stripslashes($new_instance['order']));
 		return $instance;
 	}
 
@@ -984,6 +995,33 @@
 ?>
 	<p><label for="<?php echo $this->get_field_id('title'); ?>"><?php _e('Title:') ?></label>
 	<input type="text" class="widefat" id="<?php echo $this->get_field_id('title'); ?>" name="<?php echo $this->get_field_name('title'); ?>" value="<?php echo esc_attr( $instance['title'] ); ?>" /></p>
+	<p><label for="<?php echo $this->get_field_id('largest'); ?>">
+	<?php _e('Maximum Font Size:'); ?>
+	<input type="text" class="widefat" id="<?php echo $this->get_field_id('largest'); ?>" name="<?php echo $this->get_field_name('largest'); ?>" value="<?php echo esc_attr($instance['largest']); ?>" size="4" />
+	</label></p>
+	<p><label for="<?php echo $this->get_field_id('number'); ?>">
+	<?php _e('Number to show:'); ?>
+	<input type="text" class="widefat" id="<?php echo $this->get_field_id('number'); ?>" name="<?php echo $this->get_field_name('number'); ?>" value="<?php echo esc_attr($instance['number']); ?>" size="4" />
+	</label></p>
+	<p><label for="<?php echo $this->get_field_id('format'); ?>">
+	<?php _e('Display Format:'); ?>
+	<select class="widefat" size="1" id="<?php echo $this->get_field_id('format'); ?>" name="<?php echo $this->get_field_name('format'); ?>">
+		<option value="flat" <?php selected($instance['format'], 'flat') ?>><?php _e('Flat'); ?></option>
+		<option value="list" <?php selected($instance['format'], 'list') ?>><?php _e('List'); ?></option>
+	</select></label></p>
+	<p><label for="<?php echo $this->get_field_id('orderby'); ?>">
+	<?php _e('Order By:'); ?>
+	<select class="widefat" size="1" id="<?php echo $this->get_field_id('orderby'); ?>" name="<?php echo $this->get_field_name('orderby'); ?>">
+		<option value="name" <?php selected($instance['orderby'], 'name') ?>><?php _e('Name'); ?></option>
+		<option value="count" <?php selected($instance['orderby'], 'count') ?>><?php _e('Count'); ?></option>
+	</select></label></p>
+	<p><label for="<?php echo $this->get_field_id('order'); ?>">
+	<?php _e('Order:'); ?>
+	<select class="widefat" size="1" id="<?php echo $this->get_field_id('order'); ?>" name="<?php echo $this->get_field_name('order'); ?>">
+		<option value="ASC" <?php selected($instance['order'], 'ASC' )?>><?php _e('Ascending'); ?></option>
+		<option value="DESC" <?php selected($instance['order'], 'DESC') ?>><?php _e('Descending'); ?></option>
+	</select></label></p>
+
 <?php
 	}
 }
