Index: wp-includes/js/customize-loader.dev.js
===================================================================
--- wp-includes/js/customize-loader.dev.js	(revision 20405)
+++ wp-includes/js/customize-loader.dev.js	(working copy)
@@ -10,6 +10,7 @@
 
 			this.element.on( 'click', '.close-full-overlay', function() {
 				Loader.close();
+				window.location.hash = '';
 				return false;
 			});
 
@@ -17,8 +18,41 @@
 				Loader.element.toggleClass('collapsed');
 				return false;
 			});
+
+			Loader.checkHashParams();
 		},
+		getHashParams: function() {
+			var hash = window.location.toString().split(/[#?]/)[1];
+			var hashParams = {};
+
+			if ( ! hash )
+				return hashParams;
+
+			var parts = hash.replace('customize/', '').split(/[=&]/);
+			for ( var i = 0; i < parts.length; i += 2 ) {
+				hashParams[ parts[i] ] = decodeURIComponent( parts[i + 1] );
+			}
+
+			return hashParams;
+		},
+		checkHashParams: function() {
+			var params = Loader.getHashParams();
+
+			if ( params.template && params.stylesheet ) {
+				// Load the theme.
+				Loader.open({
+					template:   params.template,
+					stylesheet: params.stylesheet
+				});
+			} else {
+				if ( Loader.iframe )
+					Loader.close();
+			}
+		},
 		open: function( params ) {
+			if ( -1 == window.location.hash.indexOf( '#customize' ) )
+				window.location.hash = 'customize/template=' + params.template + '&stylesheet=' + params.stylesheet;
+
 			params.customize = 'on';
 
 			this.iframe = $( '<iframe />', {
@@ -31,7 +65,8 @@
 		},
 		close: function() {
 			this.element.fadeOut( 200, function() {
-				Loader.iframe.remove();
+				if ( Loader.iframe )
+					Loader.iframe.remove();
 				Loader.iframe = null;
 				Loader.body.removeClass( 'customize-active full-overlay-active' );
 			});
@@ -41,6 +76,10 @@
 	$( function() {
 		Loader.initialize();
 
+		window.onhashchange = function() {
+			Loader.checkHashParams();
+		}
+
 		$('#current-theme, #availablethemes').on( 'click', '.load-customize', function( event ) {
 			var load = $(this);
 
