Index: wp-admin/css/customize-controls.dev.css
===================================================================
--- wp-admin/css/customize-controls.dev.css	(revision 21007)
+++ wp-admin/css/customize-controls.dev.css	(working copy)
@@ -402,10 +402,6 @@
 	text-align: right;
 }
 
-.customize-section .customize-control-image .actions a {
-	display: block;
-}
-
 .customize-section .customize-control-image .library ul {
 	border-bottom: 1px solid #dfdfdf;
 	float: left;
@@ -456,7 +452,7 @@
 
 .customize-section .customize-control-image .library .thumbnail img {
 	display: block;
-	max-width: 220px;
+	max-width: 90%;
 	max-height: 80px;
 
 	margin: 5px auto;
@@ -465,25 +461,29 @@
 	border: 1px solid #dfdfdf;
 }
 
-.customize-section .customize-control-upload .upload-fallback,
-.customize-section .customize-control-image .upload-fallback {
+.customize-section .customize-control-upload .upload-dropzone,
+.customize-section .customize-control-image .upload-dropzone {
+	margin: 5px 0 0;
+	position: relative;
+}
+
+.customize-section .upload-dropzone-text,
+.customize-section .supports-drag-drop .upload-fallback-button {
 	display: none;
 }
 
-.customize-section .customize-control-upload .upload-dropzone,
-.customize-section .customize-control-image .upload-dropzone {
-	display: none;
+.customize-section .supports-drag-drop .upload-dropzone-text {
+	display: inline;
+}
+
+.customize-section .customize-control-upload .upload-dropzone.supports-drag-drop,
+.customize-section .customize-control-image .upload-dropzone.supports-drag-drop {
 	padding: 15px 10px;
 	border: 3px dashed #dfdfdf;
 	margin: 5px auto;
 	text-align: center;
 	color: #777;
-	position: relative;
-}
-
-.customize-section .customize-control-upload .upload-dropzone.supports-drag-drop,
-.customize-section .customize-control-image .upload-dropzone.supports-drag-drop {
-	display: block;
+	cursor: default;
 	-webkit-transition: border-color 0.1s;
 	-moz-transition:    border-color 0.1s;
 	-ms-transition:     border-color 0.1s;
@@ -491,7 +491,43 @@
 	transition:         border-color 0.1s;
 }
 
+.customize-section .customize-control-upload .library ul li,
+.customize-section .customize-control-image .library ul li {
+	cursor: pointer;
+}
+
 .customize-section .customize-control-upload .upload-dropzone.supports-drag-drop.drag-over,
 .customize-section .customize-control-image .upload-dropzone.supports-drag-drop.drag-over {
 	border-color: #83b4d8;
-}
\ No newline at end of file
+}
+
+/**
+ * iOS can't scroll iframes,
+ * instead it expands the iframe size to match the size of the content
+ */
+body.ios {
+	position: static;
+	z-index: 0;
+	overflow: auto;
+}
+
+.ios #customize-controls {
+	right: auto;
+	width: 250px;
+	position: fixed;
+}
+
+.ios #customize-preview {
+	position: relative;
+	left: 250px;
+}
+
+.ios.collapsed #customize-preview {
+	left: 0;
+	width: 100%
+}
+
+.ios.collapsed #customize-controls {
+	margin-left: -250px;
+}
+
Index: wp-admin/customize.php
===================================================================
--- wp-admin/customize.php	(revision 21007)
+++ wp-admin/customize.php	(working copy)
@@ -39,6 +39,22 @@
 wp_user_settings();
 _wp_admin_html_begin();
 
+$body_class = 'wp-full-overlay';
+$is_mobile = $is_ios = false;
+
+if ( wp_is_mobile() ) {
+	$body_class .= ' mobile';
+	$is_mobile = true;
+	if ( strpos($_SERVER['HTTP_USER_AGENT'], 'iPad')
+		|| strpos($_SERVER['HTTP_USER_AGENT'], 'iPod')
+		|| strpos($_SERVER['HTTP_USER_AGENT'], 'iPhone') ) {
+			$body_class .= ' ios';
+			$is_ios = true;
+		}
+
+	?><meta name="viewport" id="viewport-meta" content="width=device-width, initial-scale=0.8, minimum-scale=0.5, maximum-scale=2.0"><?php
+}
+
 $admin_title = sprintf( __( '%1$s &#8212; WordPress' ), strip_tags( sprintf( __( 'Customize %s' ), $wp_customize->theme()->display('Name') ) ) );
 ?><title><?php echo $admin_title; ?></title><?php
 
@@ -46,7 +62,7 @@
 do_action( 'customize_controls_print_scripts' );
 ?>
 </head>
-<body class="wp-full-overlay">
+<body class="<?php echo $body_class; ?>">
 	<form id="customize-controls" class="wrap wp-full-overlay-sidebar">
 		<?php wp_nonce_field( 'customize_controls' ); ?>
 		<div id="customize-header-actions" class="wp-full-overlay-header">
@@ -145,6 +161,8 @@
 			'isCrossDomain' => $cross_domain,
 			'fallback'      => $fallback_url,
 		),
+		'is_mobile' => $is_mobile,
+		'is_ios' => $is_ios,
 		'settings' => array(),
 		'controls' => array(),
 	);
Index: wp-includes/class-wp-customize-control.php
===================================================================
--- wp-includes/class-wp-customize-control.php	(revision 21007)
+++ wp-includes/class-wp-customize-control.php	(working copy)
@@ -331,7 +331,7 @@
 			$src = call_user_func( $this->get_url, $src );
 
 		?>
-		<label class="customize-image-picker">
+		<div class="customize-image-picker">
 			<span class="customize-control-title"><?php echo esc_html( $this->label ); ?></span>
 
 			<div class="customize-control-content">
@@ -366,7 +366,7 @@
 			<div class="actions">
 				<a href="#" class="remove"><?php _e( 'Remove Image' ); ?></a>
 			</div>
-		</label>
+		</div>
 		<?php
 	}
 
@@ -384,7 +384,8 @@
 	public function tab_upload_new() {
 		?>
 		<div class="upload-dropzone">
-			<?php _e('Drop a file here or <a href="#" class="upload">select a file</a>.'); ?>
+			<span class="upload-dropzone-text"><?php _e('Drop a file here or'); ?></span>
+			<a href="#" class="upload"><span class="upload-dropzone-text"><?php _e('select a file.'); ?></span><span class="upload-fallback-button button-secondary"><?php _e('Select File'); ?></span></a>
 		</div>
 		<div class="upload-fallback">
 			<span class="button-secondary"><?php _e('Select File'); ?></span>
@@ -480,4 +481,4 @@
 		foreach ( $custom_image_header->default_headers as $header )
 			$this->print_tab_image( $header['url'], $header['thumbnail_url'] );
 	}
-}
\ No newline at end of file
+}
Index: wp-includes/js/customize-loader.dev.js
===================================================================
--- wp-includes/js/customize-loader.dev.js	(revision 21007)
+++ wp-includes/js/customize-loader.dev.js	(working copy)
@@ -30,6 +30,10 @@
 			this.bind( 'close', this.overlay.hide );
 
 			$('#wpbody').on( 'click', '.load-customize', function( event ) {
+				// follow the link if on mobile device
+				if ( $('body').hasClass('mobile') )
+					return true;
+
 				event.preventDefault();
 
 				// Load the theme.
Index: wp-includes/js/plupload/wp-plupload.dev.js
===================================================================
--- wp-includes/js/plupload/wp-plupload.dev.js	(revision 21007)
+++ wp-includes/js/plupload/wp-plupload.dev.js	(working copy)
@@ -99,7 +99,7 @@
 				active = false;
 				dropzone.removeClass('drag-over');
 			});
-		}( this.dropzone, this.uploader.features.dragdrop ));
+		}( this.dropzone, this.uploader.features.dragdrop && ! $('body').hasClass('mobile') ));
 
 		this.browser.on( 'mouseenter', this.refresh );
 
@@ -200,4 +200,4 @@
 	});
 
 	exports.Uploader = Uploader;
-})( wp, jQuery );
\ No newline at end of file
+})( wp, jQuery );
