diff --git src/wp-includes/js/media-models.js src/wp-includes/js/media-models.js
index 53eefdf..d3009b1 100644
--- src/wp-includes/js/media-models.js
+++ src/wp-includes/js/media-models.js
@@ -322,6 +322,17 @@ window.wp = window.wp || {};
 			}, data ) ).done( function( resp, status, xhr ) {
 				model.set( model.parse( resp, xhr ), options );
 			});
+		},
+		crop: function( cropDetails ) {
+			var model = this;
+
+			return wp.ajax.post( 'custom-header-crop', {
+				nonce: this.get('nonces').edit,
+				id: this.get('id'),
+				cropDetails: cropDetails
+			} ).done( function( resp, status, xhr ) {
+				model.set( model.parse( resp, xhr ) );
+			});
 		}
 	}, {
 		/**
diff --git src/wp-includes/js/media-views.js src/wp-includes/js/media-views.js
index 97dd232..9724db6 100644
--- src/wp-includes/js/media-views.js
+++ src/wp-includes/js/media-views.js
@@ -1299,7 +1299,7 @@
 		activate: function() {
 			this.frame.on( 'content:create:crop', this.createCropContent, this );
 			this.frame.on( 'close', this.removeCropper, this );
-			this.set('selection', new Backbone.Collection(this.frame._selection.single));
+			this.set('selection', new media.model.Selection(this.frame._selection.single));
 		},
 
 		deactivate: function() {
@@ -1308,7 +1308,7 @@
 
 		createCropContent: function() {
 			this.cropperView = new wp.media.view.Cropper({controller: this,
-					attachment: this.get('selection').first() });
+					attachment: this.get('selection').single() });
 			this.cropperView.on('image-loaded', this.createCropToolbar, this);
 			this.frame.content.set(this.cropperView);
 
@@ -1335,13 +1335,12 @@
 
 						click: function() {
 							var self = this,
-								selection = this.controller.state().get('selection').first();
-
-							selection.set({cropDetails: this.controller.state().imgSelect.getSelection()});
+								cropDetails = this.controller.state().imgSelect.getSelection(),
+								selection = this.controller.state().get('selection').single();
 
 							this.$el.text(l10n.cropping);
 							this.$el.attr('disabled', true);
-							this.controller.state().doCrop( selection ).done( function( croppedImage ) {
+							selection.crop(cropDetails).done( function( croppedImage ) {
 								self.controller.trigger('cropped', croppedImage );
 								self.controller.close();
 							}).fail( function() {
@@ -1360,7 +1359,7 @@
 						priority:   70,
 						requires:   { library: false, selection: false },
 						click:      function() {
-							var selection = this.controller.state().get('selection').first();
+							var selection = this.controller.state().get('selection').single();
 							this.controller.state().cropperView.remove();
 							this.controller.trigger('skippedcrop', selection);
 							this.controller.close();
@@ -1370,14 +1369,6 @@
 			}
 
 			this.frame.toolbar.set( new wp.media.view.Toolbar(toolbarOptions) );
-		},
-
-		doCrop: function( attachment ) {
-			return wp.ajax.post( 'custom-header-crop', {
-				nonce: attachment.get('nonces').edit,
-				id: attachment.get('id'),
-				cropDetails: attachment.get('cropDetails')
-			} );
 		}
 	});
 
