Index: wp-content/themes/twentytwelve/inc/theme-options.php
===================================================================
--- wp-content/themes/twentytwelve/inc/theme-options.php	(revision 21358)
+++ wp-content/themes/twentytwelve/inc/theme-options.php	(working copy)
@@ -37,9 +37,8 @@
 		if ( 'twentytwelve' != get_stylesheet() )
 			$this->option_key = get_stylesheet() . '_theme_options';
 
-		add_action( 'admin_init',         array( $this, 'options_init'       ) );
-		add_action( 'admin_menu',         array( $this, 'add_page'           ) );
-		add_action( 'customize_register', array( $this, 'customize_register' ) );
+		add_action( 'admin_init', array( $this, 'options_init' ) );
+		add_action( 'admin_menu', array( $this, 'add_page'     ) );
 	}
 
 	/**
@@ -57,7 +56,7 @@
 	 */
 	public function options_init() {
 		// Load our options for use in any method.
-		$this->options = $this->get_theme_options();
+		$this->options = twentytwelve_get_theme_options();
 
 		// Register our option group.
 		register_setting(
@@ -104,32 +103,6 @@
 	}
 
 	/**
-	 * Returns the default options.
-	 *
-	 * @access public
-	 *
-	 * @return array
-	 */
-	public function get_default_theme_options() {
-		$default_theme_options = array(
-			'enable_fonts' => false,
-		);
-
-		return apply_filters( 'twentytwelve_default_theme_options', $default_theme_options );
-	}
-
-	/**
-	 * Returns the options array.
-	 *
-	 * @access public
-	 *
-	 * @return array
-	 */
-	public function get_theme_options() {
-		return get_option( $this->option_key, $this->get_default_theme_options() );
-	}
-
-	/**
 	 * Renders the enable fonts checkbox setting field.
 	 *
 	 * @access public
@@ -183,7 +156,7 @@
 	 * @return array The validated data.
 	 */
 	public function validate( $input ) {
-		$output = $defaults = $this->get_default_theme_options();
+		$output = $defaults = (array) twentytwelve_default_theme_options();
 
 		// The enable fonts checkbox should boolean true or false
 		if ( ! isset( $input['enable_fonts'] ) )
@@ -192,36 +165,4 @@
 
 		return apply_filters( 'twentytwelve_options_validate', $output, $input, $defaults );
 	}
-
-	/**
-	 * Implement Twenty Twelve theme options into Theme Customizer.
-	 *
-	 * @since Twenty Twelve 1.0
-	 * @access public
-	 * @param WP_Customize_Manager $wp_customize Theme Customizer object.
-	 *
-	 * @return void
-	 */
-	public function customize_register( $wp_customize ) {
-		// Enable Web Fonts
-		$wp_customize->add_section( $this->option_key . '_enable_fonts', array(
-			'title'    => __( 'Fonts', 'twentytwelve' ),
-			'priority' => 35,
-		) );
-
-		$defaults = $this->get_default_theme_options();
-
-		$wp_customize->add_setting( $this->option_key . '[enable_fonts]', array(
-			'default'    => $defaults['enable_fonts'],
-			'type'       => 'option',
-			'capability' => 'edit_theme_options',
-		) );
-
-		$wp_customize->add_control( $this->option_key . '_enable_fonts', array(
-			'label'    => __( 'Enable Web Fonts', 'twentytwelve' ),
-			'section'  => $this->option_key . '_enable_fonts',
-			'settings' => $this->option_key . '[enable_fonts]',
-			'type'     => 'checkbox',
-		) );
-	}
 }
\ No newline at end of file
Index: wp-content/themes/twentytwelve/functions.php
===================================================================
--- wp-content/themes/twentytwelve/functions.php	(revision 21358)
+++ wp-content/themes/twentytwelve/functions.php	(working copy)
@@ -43,7 +43,6 @@
  * @since Twenty Twelve 1.0
  */
 function twentytwelve_setup() {
-	global $twentytwelve_options;
 
 	/**
 	 * Make Twenty Twelve available for translation.
@@ -52,11 +51,13 @@
 	 * to change 'twentytwelve' to the name of your theme in all the template files.
 	 */
 	load_theme_textdomain( 'twentytwelve', get_template_directory() . '/languages' );
-
+	
 	// Load up our theme options page and related code.
-	require( get_template_directory() . '/inc/theme-options.php' );
-	$twentytwelve_options = new Twenty_Twelve_Options();
-
+	if ( version_compare( get_bloginfo( 'version' ), 3.4, '<' ) ) {
+		require( get_template_directory() . '/inc/theme-options.php' );
+		$twentytwelve_options = new Twenty_Twelve_Options();
+	}
+	
 	// You can define support for an editor stylesheet here; Twenty Twelve doesn't have a default one.
 	// Then, create a CSS file called editor-style.css and place it in your theme directory.
 	add_editor_style();
@@ -92,7 +93,6 @@
  * @since Twenty Twelve 1.0
  */
 function twentytwelve_scripts_styles() {
-	global $twentytwelve_options;
 
 	/**
 	 * Add JavaScript to pages with the comment form to support
@@ -111,7 +111,7 @@
 	 * Load special font CSS file.
 	 * Depends on Theme Options setting.
  	 */
-	$options = $twentytwelve_options->get_theme_options();
+	$options = twentytwelve_get_theme_options();
 	if ( $options['enable_fonts'] )
 		wp_enqueue_style( 'twentytwelve-fonts', 'http://fonts.googleapis.com/css?family=Open+Sans:400italic,700italic,400,700' );
 
@@ -161,6 +161,80 @@
 add_filter( 'wp_title', 'twentytwelve_wp_title', 10, 2 );
 
 /**
+ * Add Customizer page to the admin menu.
+ * 
+ * @since Twenty Twelve 1.0
+ * 
+ * @return void
+ */
+function twentytwelve_add_page() {
+	
+	if ( version_compare( get_bloginfo( 'version' ), 3.4, '>=' ) )
+		add_theme_page(
+			__( 'Customize', 'twentytwelve' ), // Name of page
+			__( 'Customize', 'twentytwelve' ), // Label in menu
+			'edit_theme_options',              // Capability required
+			'customize.php'                    // Menu slug, used to uniquely identify the page
+		);
+}
+add_action( 'admin_menu', 'twentytwelve_add_page' );
+
+/**
+ * Implement Twenty Twelve theme options into Theme Customizer.
+ *
+ * @since Twenty Twelve 1.0
+ * @param WP_Customize_Manager $wp_customize Theme Customizer object.
+ *
+ * @return void
+ */
+function twentytwelve_customize_register( $wp_customize ) {
+	// Enable Web Fonts
+	$wp_customize->add_section( 'twentytwelve_fonts', array(
+		'title'    => __( 'Fonts', 'twentytwelve' ),
+		'priority' => 35,
+	) );
+
+	$wp_customize->add_setting( get_stylesheet() . '_theme_options[enable_fonts]', array(
+		'default'  => twentytwelve_default_theme_options()->enable_fonts,
+		'type'     => 'option',
+	) );
+
+	$wp_customize->add_control( 'twentytwelve_enable_fonts', array(
+		'label'    => __( 'Enable Open Sans Font', 'twentytwelve' ),
+		'section'  => 'twentytwelve_fonts',
+		'settings' => get_stylesheet() . '_theme_options[enable_fonts]',
+		'type'     => 'checkbox',
+	) );
+}
+add_action( 'customize_register', 'twentytwelve_customize_register' );
+
+/**
+ * Returns the options array.
+ *
+ * @since Twenty Twelve 1.0
+ *
+ * @return array
+ */
+function twentytwelve_get_theme_options() {
+	return get_option( get_stylesheet() . '_theme_options', twentytwelve_default_theme_options() );
+}
+
+/**
+ * Returns the default options.
+ *
+ * @since Twenty Twelve 1.0
+ *
+ * @return object
+ */
+function twentytwelve_default_theme_options() {
+	$default_theme_options = array(
+		'enable_fonts' => true,
+	);
+
+	return (object) apply_filters( 'twentytwelve_default_theme_options', $default_theme_options );
+}
+
+/**
  * Get our wp_nav_menu() fallback, wp_page_menu(), to show a home link.
  *
  * @since Twenty Twelve 1.0
