Index: wp-includes/default-widgets.php
===================================================================
--- wp-includes/default-widgets.php	(revision 12541)
+++ wp-includes/default-widgets.php	(working copy)
@@ -977,27 +977,46 @@
 	function widget( $args, $instance ) {
 		extract($args);
 		$title = apply_filters('widget_title', empty($instance['title']) ? __('Tags') : $instance['title']);
+		$current_tax = $this->_get_current_tax($instance);
 
 		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('taxonomy' => $current_tax) ) );
 		echo "</div>\n";
 		echo $after_widget;
 	}
 
 	function update( $new_instance, $old_instance ) {
 		$instance['title'] = strip_tags(stripslashes($new_instance['title']));
+		$instance['taxonomy'] = stripslashes($new_instance['taxonomy']);
 		return $instance;
 	}
 
 	function form( $instance ) {
+		$current_tax = $this->_get_current_tax($instance);
 ?>
 	<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 if (isset ( $instance['title'])) {echo esc_attr( $instance['title'] );} ?>" /></p>
-<?php
+	<p><label for="<?php echo $this->get_field_id('taxonomy'); ?>"><?php _e('Taxonomy:') ?></label>
+	<select class="widefat" id="<?php echo $this->get_field_id('taxonomy'); ?>" name="<?php echo $this->get_field_name('taxonomy'); ?>">
+	<?php foreach ( get_object_taxonomies('post') as $tax ) :
+				$t = get_taxonomy($tax);
+				if ( empty($t->label) )
+					continue;
+	?>
+		<option value="<?php echo esc_attr($tax) ?>" <?php selected($tax, $current_tax) ?>><?php echo $t->label ?></option>
+	<?php endforeach; ?>
+	</select></p><?php
 	}
+
+	function _get_current_tax($instance) {
+		if ( isset($instance['taxonomy']) && is_taxonomy($instance['taxonomy']) ) 
+			return $instance['taxonomy'];
+
+		return 'post_tag';
+	}
 }
 
 /**

