Index: wp-includes/post.php
===================================================================
--- wp-includes/post.php	(revision 17371)
+++ wp-includes/post.php	(working copy)
@@ -972,7 +972,7 @@
 			$args->rewrite['with_front'] = true;
 		if ( ! isset( $args->rewrite['pages'] ) )
 			$args->rewrite['pages'] = true;
-		if ( ! isset( $args->rewrite['feeds'] ) || ! $args->has_archive )
+		if ( ! isset( $args->rewrite['feeds'] ) && isset( $args->has_archive ) )
 			$args->rewrite['feeds'] = (bool) $args->has_archive;
 
 		if ( $args->hierarchical )
@@ -980,14 +980,14 @@
 		else
 			$wp_rewrite->add_rewrite_tag("%$post_type%", '([^/]+)', $args->query_var ? "{$args->query_var}=" : "post_type=$post_type&name=");
 
+		$archive_slug = ( is_string( $args->has_archive ) && strlen( $args->has_archive ) ) ? $args->has_archive : $args->rewrite['slug'];
+		if ( $args->rewrite['feeds'] && $wp_rewrite->feeds ) {
+			$feeds = '(' . trim( implode( '|', $wp_rewrite->feeds ) ) . ')';
+			$wp_rewrite->add_rule( "{$archive_slug}/feed/$feeds/?$", "index.php?post_type=$post_type" . '&feed=$matches[1]', 'top' );
+			$wp_rewrite->add_rule( "{$archive_slug}/$feeds/?$", "index.php?post_type=$post_type" . '&feed=$matches[1]', 'top' );
+		}
 		if ( $args->has_archive ) {
-			$archive_slug = $args->has_archive === true ? $args->rewrite['slug'] : $args->has_archive;
 			$wp_rewrite->add_rule( "{$archive_slug}/?$", "index.php?post_type=$post_type", 'top' );
-			if ( $args->rewrite['feeds'] && $wp_rewrite->feeds ) {
-				$feeds = '(' . trim( implode( '|', $wp_rewrite->feeds ) ) . ')';
-				$wp_rewrite->add_rule( "{$archive_slug}/feed/$feeds/?$", "index.php?post_type=$post_type" . '&feed=$matches[1]', 'top' );
-				$wp_rewrite->add_rule( "{$archive_slug}/$feeds/?$", "index.php?post_type=$post_type" . '&feed=$matches[1]', 'top' );
-			}
 			if ( $args->rewrite['pages'] )
 				$wp_rewrite->add_rule( "{$archive_slug}/{$wp_rewrite->pagination_base}/([0-9]{1,})/?$", "index.php?post_type=$post_type" . '&paged=$matches[1]', 'top' );
 		}
@@ -5235,4 +5235,4 @@
 }
 add_filter( 'wp_get_object_terms', '_post_format_wp_get_object_terms' );
 
-?>
\ No newline at end of file
+?>
