=== modified file 'wp-admin/plugins.php'
--- wp-admin/plugins.php	2007-03-06 17:47:27 +0000
+++ wp-admin/plugins.php	2007-03-30 10:24:21 +0000
@@ -15,7 +15,13 @@
 			@include(ABSPATH . PLUGINDIR . '/' . $plugin);
 			$current[] = $plugin;
 			sort($current);
-			update_option('active_plugins', $current);
+			$can_activate = true; //flag that can be set to false by the plugin
+			do_action('before_activate_' . $plugin);
+			if($can_activate){ //if the plugin says we shouldn't activate, trust it
+				update_option('active_plugins', $current);
+			} else {
+				exit; 
+			}
 			do_action('activate_' . $plugin);
 		}
 		wp_redirect('plugins.php?activate=true'); // overrides the ?error=true one above

