diff --git a/wp-includes/plugin.php b/wp-includes/plugin.php
index d616a2a..b80e2e8 100644
--- a/wp-includes/plugin.php
+++ b/wp-includes/plugin.php
@@ -918,3 +918,16 @@ function _wp_filter_build_unique_id($tag, $function, $priority) {
 		return $function[0] . '::' . $function[1];
 	}
 }
+
+// If we use plugins.php?dontloadplugins when loading plugins.php,
+// let them know plugins haven't been loaded and help them load them up again.
+function wp_plugins_not_loaded_notice() {
+	?>
+		<div class="error">
+			<p><?php _e(
+				'Plugins are not being loaded so you can maintain them.
+				&mdash; <a href="?loadtheplugins">I\'m done, load the plugins.</a>'
+			); ?></p>
+		</div>
+	<?php
+}
diff --git a/wp-settings.php b/wp-settings.php
index 9795971..d47fbd4 100644
--- a/wp-settings.php
+++ b/wp-settings.php
@@ -209,12 +209,52 @@ create_initial_post_types();
 // Register the default theme directory root
 register_theme_directory( get_theme_root() );
 
-// Load active plugins.
-foreach ( wp_get_active_and_valid_plugins() as $plugin ) {
-	wp_register_plugin_realpath( $plugin );
-	include_once( $plugin );
+
+// Load active plugins if we aren't trying to stop them from loading.
+if(
+
+	// Only load plugins if we don't pass plugins.php?dontloadplugins.
+	! isset( $_GET['dontloadplugins'] )
+
+	// And our 2 minute cookie isn't set.
+	&& ! isset( $_COOKIE['wp_dont_load_plugins'] )
+
+	// Or, if we're disabling the cookie, go ahead and load the plugin
+	// and remove the cookie.
+	|| isset( $_GET['loadtheplugins'] )
+) {
+
+	// Make sure our cookie is removed.
+	if( isset( $_COOKIE['wp_dont_load_plugins'] ) ) {
+		setcookie( 'wp_dont_load_plugins', '', time() - 3600 );
+	}
+
+	// Load active plugins.
+	foreach ( wp_get_active_and_valid_plugins() as $plugin ) {
+		wp_register_plugin_realpath( $plugin );
+		include_once( $plugin );
+	}
+	unset( $plugin );
+
+} else {
+
+	// Our cookie lasts 10 minutes and re-activates the plugins.
+	$cookie_to_expire = time() + 600;
+
+	// Set a cookie for the user so they have time to de-activate the plugin.
+	setcookie(
+		'wp_dont_load_plugins',
+
+		// Store the time it will expire so we can use that.
+		$cookie_to_expire,
+
+		// Expire time.
+		$cookie_to_expire
+	);
+
+	// Throw a message if we don't load plugins.
+	add_action( 'admin_notices', 'wp_plugins_not_loaded_notice' );
 }
-unset( $plugin );
 
 // Load pluggable functions.
 require( ABSPATH . WPINC . '/pluggable.php' );
