Index: wp-includes/widgets.php
===================================================================
--- wp-includes/widgets.php	(revision 8180)
+++ wp-includes/widgets.php	(working copy)
@@ -1364,18 +1364,42 @@
 	extract($args);
 	$options = get_option('widget_tag_cloud');
 	$title = empty($options['title']) ? __('Tags') : apply_filters('widget_title', $options['title']);
+	$smallest = empty($options['smallest']) ? '8' : $options['smallest'];
+	$largest = empty($options['largest']) ? '22' : $options['largest'];
+	$unit = empty($options['unit']) ? 'pt' : $options['unit'];
+	$number = empty($options['number']) ? '45' : $options['number'];
+	$format = empty($options['format']) ? 'flat' : $options['format'];
+	$orderby = empty($options['orderby']) ? 'name' : $options['orderby'];
+	$order = empty($options['order']) ? 'ASC' : $options['order'];
 
 	echo $before_widget;
 	echo $before_title . $title . $after_title;
-	wp_tag_cloud();
+	wp_tag_cloud('smallest='.$smallest.'&largest='.$largest.'&unit='.$unit.'&number='.$number.'&format='.$format.'&orderby='.$orderby.'&order='.$order);
 	echo $after_widget;
 }
 
 function wp_widget_tag_cloud_control() {
 	$options = $newoptions = get_option('widget_tag_cloud');
 
+	$smallest = 8;
+	$largest = 22;
+	$unit = 'pt';
+	$number = 45;
+	$format = 'flat';
+	$orderby = 'name';
+	$order = 'ASC';
+	$exclude = '';
+	$include = '';
+
 	if ( $_POST['tag-cloud-submit'] ) {
 		$newoptions['title'] = strip_tags(stripslashes($_POST['tag-cloud-title']));
+		$newoptions['smallest'] = strip_tags(stripslashes($_POST['tag-cloud-minsize']));
+		$newoptions['largest'] = strip_tags(stripslashes($_POST['tag-cloud-maxsize']));
+		$newoptions['unit'] = strip_tags(stripslashes($_POST['tag-cloud-unit']));
+		$newoptions['number'] = strip_tags(stripslashes($_POST['tag-cloud-number']));
+		$newoptions['format'] = strip_tags(stripslashes($_POST['tag-cloud-format']));
+		$newoptions['orderby'] = strip_tags(stripslashes($_POST['tag-cloud-orderby']));
+		$newoptions['order'] = strip_tags(stripslashes($_POST['tag-cloud-order']));
 	}
 
 	if ( $options != $newoptions ) {
@@ -1384,10 +1408,48 @@
 	}
 
 	$title = attribute_escape( $options['title'] );
+	$smallest = attribute_escape( $options['smallest'] );
+	$largest = attribute_escape( $options['largest'] );
+	$unit = attribute_escape( $options['unit'] );
+	$number = attribute_escape( $options['number'] );
+	$format = attribute_escape( $options['format'] );
+	$orderby = attribute_escape( $options['orderby'] );
+	$order = attribute_escape( $options['order'] );
 ?>
 	<p><label for="tag-cloud-title">
 	<?php _e('Title:') ?> <input type="text" class="widefat" id="tag-cloud-title" name="tag-cloud-title" value="<?php echo $title ?>" /></label>
 	</p>
+	<p><label for="tag-cloud-maxsize">
+	<?php _e('Maximum Font Size:')?> <input type="text" class="" id="tag-cloud-maxsize" name="tag-cloud-maxsize" value="<?php echo $largest ?>" size="4" /></label>
+	</p>
+	<p><label for="tag-cloud-minsize">
+	<?php _e('Minimum Font Size:')?> <input type="text" class="" id="tag-cloud-minsize" name="tag-cloud-minsize" value="<?php echo $smallest ?>" size="4" /></label>
+	</p>
+	<p><label for="tag-cloud-unit">
+	<?php _e('Unit:')?> <input type="text" class="" id="tag-cloud-unit" name="tag-cloud-unit" value="<?php echo $unit ?>" size="4" /></label>
+	</p>
+	<p><label for="tag-cloud-number">
+	<?php _e('Number:')?> <input type="text" class="" id="tag-cloud-number" name="tag-cloud-number" value="<?php echo $number ?>" size="4" /></label>
+	</p>
+	<p><label for="tag-cloud-format">
+	<?php _e('Format:')?> <select size="1" id="tag-cloud-format" name="tag-cloud-format">
+			<option value="flat" <?php if($format == 'flat'){echo "selected";}?>>Flat</option>
+			<option value="list" <?php if($format == 'list'){echo "selected";}?>>List</option>
+			<option value="array" <?php if($format == 'array'){echo "selected";}?>>Array</option>
+		</select></label>
+	</p>
+	<p><label for="tag-cloud-orderby">
+	<?php _e('Order By:')?> <select size="1" id="tag-cloud-orderby" name="tag-cloud-orderby">
+			<option value="name" <?php if($orderby == 'name'){echo "selected";}?>>Name</option>
+			<option value="count" <?php if($orderby == 'count'){echo "selected";}?>>Count</option>
+		</select></label>
+	</p>
+	<p><label for="tag-cloud-order">
+	<?php _e('Order:')?> <select size="1" id="tag-cloud-order" name="tag-cloud-order">
+			<option value="ASC" <?php if($order == 'ASC'){echo "selected";}?>>Ascending</option>
+			<option value="DESC" <?php if($order == 'DESC'){echo "selected";}?>>Descending</option>
+		</select></label>
+	</p>
 	<input type="hidden" name="tag-cloud-submit" id="tag-cloud-submit" value="1" />
 <?php
 }
