Index: wp-includes/post.php
===================================================================
--- wp-includes/post.php	(revision 17517)
+++ wp-includes/post.php	(working copy)
@@ -987,6 +987,8 @@
 			$archive_slug = $args->has_archive === true ? $args->rewrite['slug'] : $args->has_archive;
 			if ( $args->rewrite['with_front'] )
 				$archive_slug = substr( $wp_rewrite->front, 1 ) . $archive_slug;
+			else
+				$archive_slug = $wp_rewrite->root . $archive_slug;
 
 			$wp_rewrite->add_rule( "{$archive_slug}/?$", "index.php?post_type=$post_type", 'top' );
 			if ( $args->rewrite['feeds'] && $wp_rewrite->feeds ) {
Index: wp-includes/link-template.php
===================================================================
--- wp-includes/link-template.php	(revision 17517)
+++ wp-includes/link-template.php	(working copy)
@@ -847,6 +847,8 @@
 		$struct = ( true === $post_type_obj->has_archive ) ? $post_type_obj->rewrite['slug'] : $post_type_obj->has_archive;
 		if ( $post_type_obj->rewrite['with_front'] )
 			$struct = $wp_rewrite->front . $struct;
+		else
+			$struct = $wp_rewrite->root . $struct;
 		$link = home_url( user_trailingslashit( $struct, 'post_type_archive' ) );
 	} else {
 		$link = home_url( '?post_type=' . $post_type );
Index: wp-includes/rewrite.php
===================================================================
--- wp-includes/rewrite.php	(revision 17517)
+++ wp-includes/rewrite.php	(working copy)
@@ -1857,6 +1857,8 @@
 	function add_permastruct($name, $struct, $with_front = true, $ep_mask = EP_NONE) {
 		if ( $with_front )
 			$struct = $this->front . $struct;
+		else
+			$struct = $this->root . $struct;
 		$this->extra_permastructs[$name] = array($struct, $ep_mask);
 	}
 
