Index: sites/trunk/wordpress.org/public_html/wp-content/plugins/plugin-directory/admin/class-customizations.php
===================================================================
--- sites/trunk/wordpress.org/public_html/wp-content/plugins/plugin-directory/admin/class-customizations.php	(revision 5272)
+++ sites/trunk/wordpress.org/public_html/wp-content/plugins/plugin-directory/admin/class-customizations.php	(working copy)
@@ -39,6 +39,7 @@
 
 		add_action( 'wp_ajax_replyto-comment', array( $this, 'save_custom_comment' ), 0 );
 		add_filter( 'comment_row_actions', array( $this, 'custom_comment_row_actions' ), 10, 2 );
+		add_filter( 'get_comment_link', array( $this, 'link_internal_notes_to_admin' ), 10, 2 );
 
 		// Admin Metaboxes
 		add_action( 'add_meta_boxes', array( $this, 'register_admin_metaboxes' ), 10, 2 );
@@ -108,7 +109,7 @@
 			switch ( $hook_suffix ) {
 				case 'post.php':
 					wp_enqueue_style( 'plugin-admin-post-css', plugins_url( 'css/edit-form.css', Plugin_Directory\PLUGIN_FILE ), array( 'edit' ), 4 );
-					wp_enqueue_script( 'plugin-admin-post-js', plugins_url( 'js/edit-form.js', Plugin_Directory\PLUGIN_FILE ), array( 'wp-util', 'wp-lists' ), 1 );
+					wp_enqueue_script( 'plugin-admin-post-js', plugins_url( 'js/edit-form.js', Plugin_Directory\PLUGIN_FILE ), array( 'wp-util', 'wp-lists' ), 2 );
 					wp_localize_script( 'plugin-admin-post-js', 'pluginDirectory', array(
 						'removeCommitterAYS' => __( 'Are you sure you want to remove this committer?', 'wporg-plugins' ),
 					) );
@@ -413,6 +414,22 @@
 	}
 
 	/**
+	 * Changes the permalink for internal notes to link to the edit post screen.
+	 *
+	 * @param string $link         The comment permalink with '#comment-$id' appended.
+	 * @param \WP_Comment $comment The current comment object.
+	 * @return string The permalink to the given comment.
+	 */
+	public function link_internal_notes_to_admin( $link, $comment ) {
+		if ( 'internal-note' === $comment->comment_type ) {
+			$link = get_edit_post_link( $comment->comment_post_ID );
+			$link = $link . '#comment-' . $comment->comment_ID;
+		}
+
+		return $link;
+	}
+
+	/**
 	 * Saves a comment that is not built-in.
 	 *
 	 * We pretty much have to replicate all of `wp_ajax_replyto_comment()` to be able to comment on draft posts.
@@ -494,6 +511,14 @@
 			}
 		}
 
+		// Inherit comment type from parent comment.
+		if ( ! $comment_data['comment_type'] ) {
+			$parent = get_comment( $comment_parent );
+			if ( $parent && $parent->comment_post_ID == $comment_post_ID ) {
+				$comment_data['comment_type'] = $parent->comment_type;
+			}
+		}
+
 		$comment_id = wp_new_comment( $comment_data );
 		$comment    = get_comment( $comment_id );
 		if ( ! $comment ) {
Index: sites/trunk/wordpress.org/public_html/wp-content/plugins/plugin-directory/js/edit-form.js
===================================================================
--- sites/trunk/wordpress.org/public_html/wp-content/plugins/plugin-directory/js/edit-form.js	(revision 5272)
+++ sites/trunk/wordpress.org/public_html/wp-content/plugins/plugin-directory/js/edit-form.js	(working copy)
@@ -22,6 +22,7 @@
 			_.each( $( '#post-body' ).find( '.comments-box' ), PluginEdit.loadComments );
 
 			$( '#add-new-comment' ).on( 'click', 'a.button', PluginEdit.prepareCommentForm );
+			$( '#the-comment-list' ).on( 'click', '.reply a', PluginEdit.addCommentTypeField );
 
 			$( '#add-committer-toggle' ).on( 'click', PluginEdit.toggleCommitterForm );
 
@@ -107,14 +108,20 @@
 
 			window.commentReply && commentReply.addcomment( $( '#post_ID' ).val() );
 
-			// Add a field with the custom comment type.
-			$( '#replyrow' ).find( '.comment-reply' ).append( $( '<input/>' ).attr({
-				type: 'hidden',
-				name: 'comment_type',
-				value: $( '.comments-box' ).data( 'comment-type' )
-			}) );
+			PluginEdit.addCommentTypeField( event );
 		},
 
+		addCommentTypeField: function( event ) {
+			if ( 0 === $( '#replyrow' ).find( '.comment-reply input[name="comment_type"]' ).length ) {
+				// Add a field with the custom comment type.
+				$( '#replyrow' ).find( '.comment-reply' ).append( $( '<input/>' ).attr({
+					type: 'hidden',
+					name: 'comment_type',
+					value: $( '.comments-box' ).data( 'comment-type' )
+				}) );
+			}
+		},
+
 		toggleCommitterForm: function( event ) {
 			var $form = $( '#add-committer' );
 
