Index: wp-includes/comment.php
===================================================================
--- wp-includes/comment.php	(revision 17566)
+++ wp-includes/comment.php	(working copy)
@@ -1340,10 +1340,7 @@
 	if ( 'spam' !== $commentdata['comment_approved'] ) { // If it's spam save it silently for later crunching
 		if ( '0' == $commentdata['comment_approved'] )
 			wp_notify_moderator($comment_ID);
-
-		$post = &get_post($commentdata['comment_post_ID']); // Don't notify if it's your own comment
-
-		if ( get_option('comments_notify') && $commentdata['comment_approved'] && ( ! isset( $commentdata['user_id'] ) || $post->post_author != $commentdata['user_id'] ) )
+		else
 			wp_notify_postauthor($comment_ID, isset( $commentdata['comment_type'] ) ? $commentdata['comment_type'] : '' );
 	}
 
@@ -1379,10 +1376,8 @@
 		case 'approve':
 		case '1':
 			$status = '1';
-			if ( get_option('comments_notify') ) {
-				$comment = get_comment($comment_id);
-				wp_notify_postauthor($comment_id, $comment->comment_type);
-			}
+			$comment = get_comment($comment_id);
+			wp_notify_postauthor($comment_id, $comment->comment_type);
 			break;
 		case 'spam':
 			$status = 'spam';
Index: wp-includes/pluggable.php
===================================================================
--- wp-includes/pluggable.php	(revision 17566)
+++ wp-includes/pluggable.php	(working copy)
@@ -1004,9 +1004,12 @@
  *
  * @param int $comment_id Comment ID
  * @param string $comment_type Optional. The comment type either 'comment' (default), 'trackback', or 'pingback'
- * @return bool False if user email does not exist. True on completion.
+ * @return bool False if email was not sent. True on completion.
  */
 function wp_notify_postauthor( $comment_id, $comment_type = '' ) {
+	if( 0 == get_option('comments_notify') )
+		return false;
+	
 	$comment = get_comment( $comment_id );
 	$post    = get_post( $comment->comment_post_ID );
 	$author  = get_userdata( $post->post_author );
