Index: default-widgets.php
===================================================================
--- default-widgets.php	(revision 11645)
+++ default-widgets.php	(working copy)
@@ -734,17 +734,107 @@
 
 	function update($new_instance, $old_instance) {
 		$testurl = $new_instance['url'] != $old_instance['url'];
-		return wp_widget_rss_process( $new_instance, $testurl );
+		return $this->rss_process( $new_instance, $testurl );
 	}
 
+/**
+ * Process RSS feed widget data and optionally retrieve feed items.
+ *
+ * This method is a copy of the standalone function wp_widget_rss_process
+ */
+	function rss_process( $widget_rss, $check_feed = true ) {
+		$items = (int) $widget_rss['items'];
+		if ( $items < 1 || 20 < $items )
+			$items = 10;
+		$url           = esc_url_raw(strip_tags( $widget_rss['url'] ));
+		$title         = trim(strip_tags( $widget_rss['title'] ));
+		$show_summary  = (int) $widget_rss['show_summary'];
+		$show_author   = (int) $widget_rss['show_author'];
+		$show_date     = (int) $widget_rss['show_date'];
+
+		if ( $check_feed ) {
+			$rss = fetch_feed($url);
+			$error = false;
+			$link = '';
+			if ( is_wp_error($rss) ) {
+				$error = $rss->get_error_message();
+			} else {
+				$link = esc_url(strip_tags($rss->get_permalink()));
+				while ( stristr($link, 'http') != $link )
+					$link = substr($link, 1);
+			}
+		}
+
+		return compact( 'title', 'url', 'link', 'items', 'error', 'show_summary', 'show_author', 'show_date' );
+	}
+
+
 	function form($instance) {
 
 		if ( empty($instance) )
 			$instance = array( 'title' => '', 'url' => '', 'items' => 10, 'error' => false, 'show_summary' => 0, 'show_author' => 0, 'show_date' => 0 );
 		$instance['number'] = $this->number;
 
-		wp_widget_rss_form( $instance );
+		$this->rss_form( $instance );
 	}
+
+
+	function rss_form( $args, $inputs = null ) {
+	
+		$default_inputs = array( 'url' => true, 'title' => true, 'items' => true, 'show_summary' => true, 'show_author' => true, 'show_date' => true );
+		$inputs = wp_parse_args( $inputs, $default_inputs );
+		extract( $args );
+		extract( $inputs, EXTR_SKIP);
+	
+		$number = esc_attr( $number );
+		$title  = esc_attr( $title );
+		$url    = esc_url( $url );
+		$items  = (int) $items;
+		if ( $items < 1 || 20 < $items )
+			$items  = 10;
+		$show_summary   = (int) $show_summary;
+		$show_author    = (int) $show_author;
+		$show_date      = (int) $show_date;
+	
+		if ( !empty($error) )
+			echo '<p class="widget-error"><strong>' . sprintf( __('RSS Error: %s'), $error) . '</strong></p>';
+	
+		if ( $inputs['url'] ) :
+	?>
+		<p><label for="<?php echo $this->get_field_id('url'); ?>"><?php _e('Enter the RSS feed URL here:'); ?></label>
+		<input class="widefat" id="rss-url-<?php echo $this->get_field_id('url'); ?>" name="<?php echo $this->get_field_name('url'); ?>" type="text" value="<?php echo $url; ?>" /></p>
+	<?php endif; if ( $inputs['title'] ) : ?>
+		<p><label for="<?php echo $this->get_field_id('title'); ?>"><?php _e('Give the feed a title (optional):'); ?></label>
+		<input class="widefat" id="<?php echo $this->get_field_id('title'); ?>" name="<?php echo $this->get_field_name('title'); ?>" type="text" value="<?php echo $title; ?>" /></p>
+	<?php endif; if ( $inputs['items'] ) : ?>
+		<p><label for="<?php echo $this->get_field_id('items'); ?>"><?php _e('How many items would you like to display?'); ?></label>
+		<select id="<?php echo $this->get_field_id('items'); ?>" name="<?php echo $this->get_field_name('items'); ?>">
+	<?php
+			for ( $i = 1; $i <= 20; ++$i )
+				echo "<option value='$i' " . ( $items == $i ? "selected='selected'" : '' ) . ">$i</option>";
+	?>
+		</select></p>
+	<?php endif; if ( $inputs['show_summary'] ) : ?>
+		<p><input id="<?php echo $this->get_field_id('show-summary'); ?>" name="<?php echo $this->get_field_name('show_summary'); ?>" type="checkbox" value="1" <?php if ( $show_summary ) echo 'checked="checked"'; ?>/>
+		<label for="<?php echo $this->get_field_id('show-summary'); ?>"><?php _e('Display item content?'); ?></label></p>
+	<?php endif; if ( $inputs['show_author'] ) : ?>
+		<p><input id="<?php echo $this->get_field_id('show-author'); ?>" name="<?php echo $this->get_field_name('show-author');  ?>" type="checkbox" value="1" <?php if ( $show_author ) echo 'checked="checked"'; ?>/>
+		<label for="<?php echo $this->get_field_id('show-author'); ?>"><?php _e('Display item author if available?'); ?></label></p>
+	<?php endif; if ( $inputs['show_date'] ) : ?>
+		<p><input id="<?php echo $this->get_field_id('show-date'); ?>" name="<?php echo $this->get_field_name('show_date'); ?>" type="checkbox" value="1" <?php if ( $show_date ) echo 'checked="checked"'; ?>/>
+		<label for="<?php echo $this->get_field_id('show-date'); ?>"><?php _e('Display item date?'); ?></label></p>
+	<?php
+		endif;
+		foreach ( array_keys($default_inputs) as $input ) :
+			if ( 'hidden' === $inputs[$input] ) :
+				$id = str_replace( '_', '-', $input );
+	?>
+		<input type="hidden" id="rss-<?php echo $id; ?>-<?php echo $number; ?>" name="<?php echo $this->get_field_name('url'); ?>[<?php echo $input; ?>]" value="<?php echo $$input; ?>" />
+	<?php
+			endif;
+		endforeach;
+	}
+   
 }
 
 /**
