diff -Naur ori/wp-admin/includes/schema.php new/wp-admin/includes/schema.php
--- ori/wp-admin/includes/schema.php	2008-12-12 20:48:08.000000000 +0100
+++ new/wp-admin/includes/schema.php	2009-03-01 13:14:18.000000000 +0100
@@ -302,6 +302,10 @@
 	add_option('update_core', array());
 	add_option('dismissed_update_core', array());
 
+	// 2.8
+	add_option('new_login_notifications', 1);
+	add_option('password_reset_notifications', 1);
+
 	// Delete unused options
 	$unusedoptions = array ('blodotgsping_url', 'bodyterminator', 'emailtestonly', 'phoneemail_separator', 'smilies_directory', 'subjectprefix', 'use_bbcode', 'use_blodotgsping', 'use_phoneemail', 'use_quicktags', 'use_weblogsping', 'weblogs_cache_file', 'use_preview', 'use_htmltrans', 'smilies_directory', 'fileupload_allowedusers', 'use_phoneemail', 'default_post_status', 'default_post_category', 'archive_mode', 'time_difference', 'links_minadminlevel', 'links_use_adminlevels', 'links_rating_type', 'links_rating_char', 'links_rating_ignore_zero', 'links_rating_single_image', 'links_rating_image0', 'links_rating_image1', 'links_rating_image2', 'links_rating_image3', 'links_rating_image4', 'links_rating_image5', 'links_rating_image6', 'links_rating_image7', 'links_rating_image8', 'links_rating_image9', 'weblogs_cacheminutes', 'comment_allowed_tags', 'search_engine_friendly_urls', 'default_geourl_lat', 'default_geourl_lon', 'use_default_geourl', 'weblogs_xml_url', 'new_users_can_blog', '_wpnonce', '_wp_http_referer', 'Update', 'action', 'rich_editing', 'autosave_interval', 'deactivated_plugins');
 	foreach ($unusedoptions as $option) :
diff -Naur ori/wp-admin/options-general.php new/wp-admin/options-general.php
--- ori/wp-admin/options-general.php	2008-12-09 18:03:32.000000000 +0100
+++ new/wp-admin/options-general.php	2009-03-01 13:17:44.000000000 +0100
@@ -80,6 +80,20 @@
 <span class="setting-description"><?php _e('This address is used for admin purposes, like new user notification.') ?></span></td>
 </tr>
 <tr valign="top">
+<th scope="row"><?php _e('New login notifications') ?></th>
+<td> <fieldset><legend class="hidden"><?php _e('Membership') ?></legend><label for="new_login_notifications">
+<input name="new_login_notifications" type="checkbox" id="new_login_notifications" value="1" <?php checked('1', get_option('new_login_notifications')); ?> />
+<?php _e('Send notification of new login creation to admin') ?></label>
+</fieldset></td>
+</tr>
+<tr valign="top">
+<th scope="row"><?php _e('Password reset notifications') ?></th>
+<td> <fieldset><legend class="hidden"><?php _e('Membership') ?></legend><label for="password_reset_notifications">
+<input name="password_reset_notifications" type="checkbox" id="password_reset_notifications" value="1" <?php checked('1', get_option('password_reset_notifications')); ?> />
+<?php _e('Send notification of password resets to admin') ?></label>
+</fieldset></td>
+</tr>
+<tr valign="top">
 <th scope="row"><?php _e('Membership') ?></th>
 <td> <fieldset><legend class="hidden"><?php _e('Membership') ?></legend><label for="users_can_register">
 <input name="users_can_register" type="checkbox" id="users_can_register" value="1" <?php checked('1', get_option('users_can_register')); ?> />
diff -Naur ori/wp-admin/options.php new/wp-admin/options.php
--- ori/wp-admin/options.php	2008-12-09 18:03:32.000000000 +0100
+++ new/wp-admin/options.php	2009-03-01 13:14:28.000000000 +0100
@@ -22,7 +22,7 @@
 wp_reset_vars(array('action'));
 
 $whitelist_options = array(
-	'general' => array( 'blogname', 'blogdescription', 'admin_email', 'users_can_register', 'gmt_offset', 'date_format', 'time_format', 'start_of_week', 'default_role' ),
+	'general' => array( 'blogname', 'blogdescription', 'admin_email', 'new_login_notifications', 'password_reset_notifications', 'users_can_register', 'gmt_offset', 'date_format', 'time_format', 'start_of_week', 'default_role' ),
 	'discussion' => array( 'default_pingback_flag', 'default_ping_status', 'default_comment_status', 'comments_notify', 'moderation_notify', 'comment_moderation', 'require_name_email', 'comment_whitelist', 'comment_max_links', 'moderation_keys', 'blacklist_keys', 'show_avatars', 'avatar_rating', 'avatar_default', 'close_comments_for_old_posts', 'close_comments_days_old', 'thread_comments', 'thread_comments_depth', 'page_comments', 'comments_per_page', 'default_comments_page', 'comment_order', 'comment_registration' ),
 	'misc' => array( 'hack_file', 'use_linksupdate', 'uploads_use_yearmonth_folders', 'upload_path', 'upload_url_path' ),
 	'media' => array( 'thumbnail_size_w', 'thumbnail_size_h', 'thumbnail_crop', 'medium_size_w', 'medium_size_h', 'large_size_w', 'large_size_h', 'image_default_size', 'image_default_align', 'image_default_link_type' ),
diff -Naur ori/wp-includes/pluggable.php new/wp-includes/pluggable.php
--- ori/wp-includes/pluggable.php	2009-01-29 17:59:04.000000000 +0100
+++ new/wp-includes/pluggable.php	2009-03-01 13:13:52.000000000 +0100
@@ -1081,7 +1081,7 @@
 function wp_password_change_notification(&$user) {
 	// send a copy of password change notification to the admin
 	// but check to see if it's the admin whose password we're changing, and skip this
-	if ( $user->user_email != get_option('admin_email') ) {
+	if ( ( $user->user_email != get_option('admin_email') ) && get_option('password_reset_notifications') ) {
 		$message = sprintf(__('Password Lost and Changed for user: %s'), $user->user_login) . "\r\n";
 		wp_mail(get_option('admin_email'), sprintf(__('[%s] Password Lost/Changed'), get_option('blogname')), $message);
 	}
@@ -1103,11 +1103,14 @@
 	$user_login = stripslashes($user->user_login);
 	$user_email = stripslashes($user->user_email);
 
-	$message  = sprintf(__('New user registration on your blog %s:'), get_option('blogname')) . "\r\n\r\n";
-	$message .= sprintf(__('Username: %s'), $user_login) . "\r\n\r\n";
-	$message .= sprintf(__('E-mail: %s'), $user_email) . "\r\n";
+	if ( get_option('new_login_notifications') )
+	{
+		$message  = sprintf(__('New user registration on your blog %s:'), get_option('blogname')) . "\r\n\r\n";
+		$message .= sprintf(__('Username: %s'), $user_login) . "\r\n\r\n";
+		$message .= sprintf(__('E-mail: %s'), $user_email) . "\r\n";
 
-	@wp_mail(get_option('admin_email'), sprintf(__('[%s] New User Registration'), get_option('blogname')), $message);
+		@wp_mail(get_option('admin_email'), sprintf(__('[%s] New User Registration'), get_option('blogname')), $message);
+	}
 
 	if ( empty($plaintext_pass) )
 		return;
