Index: wp-includes/js/media-editor.js
===================================================================
--- wp-includes/js/media-editor.js	(revision 22950)
+++ wp-includes/js/media-editor.js	(working copy)
@@ -205,7 +205,7 @@
 					args.post__not_in = attrs.exclude.split(',');
 
 				if ( ! args.post__in )
-					args.parent = attrs.id;
+					args.uploadedTo = attrs.id;
 
 				// Collect the attributes that were not included in `args`.
 				others = _.omit( attrs, 'id', 'ids', 'include', 'exclude', 'orderby', 'order' );
@@ -228,9 +228,9 @@
 				// the collection will already reflect those properties.
 				attrs.ids = attachments.pluck('id');
 
-				// Copy the `parent` post ID.
-				if ( props.parent )
-					attrs.id = props.parent;
+				// Copy the `uploadedTo` post ID.
+				if ( props.uploadedTo )
+					attrs.id = props.uploadedTo;
 
 				// If the `ids` attribute is set and `orderby` attribute
 				// is the default value, clear it for cleaner output.
Index: wp-includes/js/media-models.js
===================================================================
--- wp-includes/js/media-models.js	(revision 22950)
+++ wp-includes/js/media-models.js	(working copy)
@@ -316,11 +316,11 @@
 			this.filters = options.filters || {};
 
 			// Bind default `change` events to the `props` model.
+			this.props.on( 'change', this._changeFilteredProps, this );
+
 			this.props.on( 'change:order',   this._changeOrder,   this );
 			this.props.on( 'change:orderby', this._changeOrderby, this );
 			this.props.on( 'change:query',   this._changeQuery,   this );
-			this.props.on( 'change:search',  this._changeSearch,  this );
-			this.props.on( 'change:type',    this._changeType,    this );
 
 			// Set the `props` model and fill the default property values.
 			this.props.set( _.defaults( options.props || {} ) );
@@ -359,17 +359,33 @@
 			}
 		},
 
-		_changeFilteredProp: function( prop, model, term ) {
+		_changeFilteredProps: function( model, options ) {
 			// If this is a query, updating the collection will be handled by
 			// `this._requery()`.
 			if ( this.props.get('query') )
 				return;
 
-			if ( term && ! this.filters[ prop ] )
-				this.filters[ prop ] = Attachments.filters[ prop ];
-			else if ( ! term && this.filters[ prop ] === Attachments.filters[ prop ] )
-				delete this.filters[ prop ];
+			var changed = _.chain( options.changes ).map( function( t, prop ) {
+				var filter = Attachments.filters[ prop ],
+					term = model.get( prop );
 
+				if ( ! filter )
+					return;
+
+				if ( term && ! this.filters[ prop ] )
+					this.filters[ prop ] = filter;
+				else if ( ! term && this.filters[ prop ] === filter )
+					delete this.filters[ prop ];
+				else
+					return;
+
+				// Record the change.
+				return true;
+			}, this ).any().value();
+
+			if ( ! changed )
+				return;
+
 			// If no `Attachments` model is provided to source the searches
 			// from, then automatically generate a source from the existing
 			// models.
@@ -379,14 +395,6 @@
 			this.reset( this._source.filter( this.validator, this ) );
 		},
 
-		_changeSearch: function( model, term ) {
-			return this._changeFilteredProp( 'search', model, term );
-		},
-
-		_changeType: function( model, term ) {
-			return this._changeFilteredProp( 'type', model, term );
-		},
-
 		validator: function( attachment ) {
 			return _.all( this.filters, function( filter, key ) {
 				return !! filter.call( this, attachment );
@@ -531,10 +539,15 @@
 
 			type: function( attachment ) {
 				var type = this.props.get('type');
-				if ( ! type )
+				return ! type || -1 !== type.indexOf( attachment.get('type') );
+			},
+
+			uploadedTo: function( attachment ) {
+				var uploadedTo = this.props.get('uploadedTo');
+				if ( _.isUndefined( uploadedTo ) )
 					return true;
 
-				return -1 !== type.indexOf( attachment.get('type') );
+				return uploadedTo === attachment.get('uploadedTo');
 			}
 		}
 	});
@@ -597,7 +610,7 @@
 			// Only observe when a limited number of query args are set. There
 			// are no filters for other properties, so observing will result in
 			// false positives in those queries.
-			allowed = [ 's', 'order', 'orderby', 'posts_per_page', 'post_mime_type' ];
+			allowed = [ 's', 'order', 'orderby', 'posts_per_page', 'post_mime_type', 'post_parent' ];
 			if ( wp.Uploader && _( this.args ).chain().keys().difference( allowed ).isEmpty().value() )
 				this.observe( wp.Uploader.queue );
 		},
@@ -670,9 +683,9 @@
 		propmap: {
 			'search':    's',
 			'type':      'post_mime_type',
-			'parent':    'post_parent',
 			'perPage':   'posts_per_page',
-			'menuOrder': 'menu_order'
+			'menuOrder': 'menu_order',
+			'uploadedTo': 'post_parent'
 		},
 
 		// Caches query objects so queries can be easily reused.
Index: wp-includes/js/media-views.js
===================================================================
--- wp-includes/js/media-views.js	(revision 22950)
+++ wp-includes/js/media-views.js	(working copy)
@@ -2920,7 +2920,7 @@
 			all: {
 				text:  l10n.allMediaItems,
 				props: {
-					parent:  null,
+					uploadedTo: null,
 					orderby: 'date',
 					order:   'DESC'
 				},
@@ -2930,7 +2930,7 @@
 			uploaded: {
 				text:  l10n.uploadedToThisPost,
 				props: {
-					parent:  media.view.settings.postId,
+					uploadedTo: media.view.settings.postId,
 					orderby: 'menuOrder',
 					order:   'ASC'
 				},
@@ -2948,7 +2948,7 @@
 					text: text,
 					props: {
 						type:    key,
-						parent:  null,
+						uploadedTo: null,
 						orderby: 'date',
 						order:   'DESC'
 					}
@@ -2959,7 +2959,7 @@
 				text:  l10n.allMediaItems,
 				props: {
 					type:    null,
-					parent:  null,
+					uploadedTo: null,
 					orderby: 'date',
 					order:   'DESC'
 				},
@@ -2970,7 +2970,7 @@
 				text:  l10n.uploadedToThisPost,
 				props: {
 					type:    null,
-					parent:  media.view.settings.postId,
+					uploadedTo: media.view.settings.postId,
 					orderby: 'menuOrder',
 					order:   'ASC'
 				},
Index: wp-includes/js/plupload/wp-plupload.js
===================================================================
--- wp-includes/js/plupload/wp-plupload.js	(revision 22950)
+++ wp-includes/js/plupload/wp-plupload.js	(working copy)
@@ -155,7 +155,9 @@
 					file:      file,
 					uploading: true,
 					date:      new Date(),
-					filename:  file.name
+					filename:  file.name,
+					menuOrder: 0,
+					uploadedTo: media.model.settings.postId
 				}, _.pick( file, 'loaded', 'size', 'percent' ) );
 
 				// Handle early mime type scanning for images.
