Index: wp-includes/functions.php
===================================================================
--- wp-includes/functions.php	(revision 4791)
+++ wp-includes/functions.php	(working copy)
@@ -203,6 +203,10 @@
 function get_option($setting) {
 	global $wpdb;
 
+	// prevent non-existent options from triggering multiple queries
+	if ( true === wp_cache_get($setting, 'notoptions') )
+		return false;
+
 	$value = wp_cache_get($setting, 'options');
 
 	if ( false === $value ) {
@@ -215,7 +219,8 @@
 		if( is_object( $row) ) { // Has to be get_row instead of get_var because of funkiness with 0, false, null values
 			$value = $row->option_value;
 			wp_cache_set($setting, $value, 'options');
-		} else {
+		} else { // option does not exist, so we must cache its non-existence
+			wp_cache_set($setting, true, 'notoptions');
 			return false;
 		}
 	}
@@ -274,6 +279,9 @@
 		return true;
 	}
 
+	if ( true === wp_cache_get($option_name, 'notoptions') )
+		wp_cache_delete($option_name, 'notoptions');
+
 	$_newvalue = $newvalue;
 	$newvalue = maybe_serialize($newvalue);
 
