Index: sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-developer/comments-edit.php
===================================================================
--- sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-developer/comments-edit.php	(nonexistent)
+++ sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-developer/comments-edit.php	(working copy)
@@ -0,0 +1,93 @@
+<?php namespace DevHub;
+/**
+ * The Template for editing user contributed notes.
+ *
+ * This template is used if the current user can edit a note.
+ * The global post data is set with the pre_get_posts action.
+ *
+ * @package wporg-developer
+ */
+
+get_header(); 
+
+$comment_id = get_query_var( 'feedback_id' );
+$comment    = get_comment( $comment_id );
+$post       = get_queried_object();
+$post_id    = get_queried_object_id();
+
+if ( ! ( $comment && $post && $post_id ) ) {
+	// Bail if the comment or global post data is not found.
+	include get_404_template();
+	return;
+}
+
+$is_parent   = $comment->comment_parent ?  true : false;
+$parent      = $is_parent ? get_comment( $comment->comment_parent ) : false;
+$post_url    = get_permalink( $post_id );
+$post_title  = single_post_title( '', false );
+$post_types  = get_parsed_post_types( 'labels' );
+$type_single = get_post_type_object( $post->post_type )->labels->singular_name;
+$type_url    = get_post_type_archive_link( $post->post_type );
+$type_label  = $post_types[ $post->post_type ];
+$ref_url     = get_site_section_url();
+$ref_link    = "<a href='{$ref_url}'>Reference</a>";
+$post_link   = "<a href='{$post_url}'>{$post_title}</a>";
+$note_link   = "<a href='{$post_url}#comment-{$comment_id}'>note {$comment_id}</a>";
+$type_link   = "<a href='{$type_url}'>{$type_label}</a>";
+
+$parent_link   = '';
+$parent_author = '';
+if ( $is_parent && isset( $parent->comment_ID ) ) {
+	$parent_author = get_note_author_link( $parent );
+	$parent_label  = sprintf( __('note %d', 'wporg'), $parent->comment_ID );
+	$parent_link   = "<a href='{$post_url}#comment-{$parent->comment_ID}'>{$parent_label}</a>";
+}
+
+add_filter( 'breadcrumb_trail_items', function($items) use ( $ref_link, $type_link, $post_link, $note_link  ) {
+	$items[] = $ref_link;
+	$items[] = $type_link;
+	$items[] = $post_link;
+	$items[] = $note_link;
+	$items[] = __('Edit', 'wporg');
+	return $items;
+} );
+?>
+
+	<div id="content-area" <?php body_class( 'code-reference' ); ?>>
+
+		<?php breadcrumb_trail( array( 'show_title' => false ) ); ?>
+
+		<main id="main" class="site-main" role="main">
+
+			<h1><?php printf( __( 'Edit Note %d', 'wporg' ), $comment_id ); ?></h1>
+
+			<p>
+				<?php if ( $is_parent ) : ?>
+					<?php
+						/* translators: 1: comment title, 2: comment author name, 3: reference type (function, class, method, hook), 4: post title */
+						printf( __( 'This is a feedback note to %1$s by %2$s for the %3$s %4$s.', 'wporg' ), $parent_link, $parent_author, strtolower( $type_single ), $post_link );
+					?>
+				<?php else : ?>
+					<?php 
+
+						/* translators: 1: reference type (function, class, method, hook), 2: post title */
+						printf( __( 'This is a note for the %1$s %2$s.', 'wporg' ), strtolower( $type_single ), $post_link ); ?>
+				<?php endif; ?>
+
+				<?php echo ' ' . __( "You can edit this note as long as it's in moderation.", 'wporg' ); ?>
+			</p>
+			<?php
+				if ( \DevHub\can_user_edit_note( $comment_id ) ) {
+
+					if ( $is_parent ) {
+						echo \DevHub_User_Submitted_Content::wp_editor_feedback( $comment, 'show', true );
+					} else {
+						$args = \DevHub_User_Submitted_Content::comment_form_args( $comment, 'edit');
+						comment_form( $args );
+					}
+				}
+			?>
+
+		</main><!-- #main -->
+	</div><!-- #primary -->
+<?php get_footer(); ?>
Index: sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-developer/comments.php
===================================================================
--- sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-developer/comments.php	(revision 7118)
+++ sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-developer/comments.php	(working copy)
@@ -64,68 +64,12 @@
 
 	<?php if ( \DevHub\is_parsed_post_type() && DevHub\can_user_post_note( true, get_the_ID() ) ) : ?>
 
-		<?php $add_note_style = empty( $feedback_editor ) ? 'display:none;' : ''; ?>
-		<p id="add-user-note" style="<?php echo $add_note_style; ?>"><a href="<?php echo user_trailingslashit( get_permalink() ) . '#respond'; ?>"><?php _e( 'Have a note or feedback to contribute?', 'wporg' ); ?></a></p>
+		<p id="add-user-note"><a href="<?php echo user_trailingslashit( get_permalink() ) . '#respond'; ?>"><?php _e( 'Have a note or feedback to contribute?', 'wporg' ); ?></a></p>
 
 		<?php 
-		$args = array(
-			'logged_in_as'        => '<p class="logged-in-as">'
-				. sprintf(
-					/* translators: 1: user profile link, 2: accessibility text, 3: user name, 4: logout URL */
-					__( '<a href="%1$s" aria-label="%2$s">Logged in as %3$s</a>. <a href="%4$s">Log out?</a>' ),
-					'https://profiles.wordpress.org/' . esc_attr( wp_get_current_user()->user_nicename ),
-					/* translators: %s: user name */
-					esc_attr( sprintf( __( 'Logged in as %s. Edit your profile.' ), $user_identity ) ),
-					$user_identity,
-					wp_logout_url( apply_filters( 'the_permalink', get_permalink() ) )
-				)
-				. '</p><p><ul><li>'
-				. __( 'Notes should supplement code reference entries, for example examples, tips, explanations, use-cases, and best practices.', 'wporg' )
-				. '</li><li>'
-				. __( 'Feedback can be to report errors or omissions with the documentation on this page. Such feedback will not be publicly posted.', 'wporg' )
-				. '</li><li>'
-				/* translators: 1: php button, 2: js button, 3: inline code button */
-				. sprintf(
-					__( 'You can enter text and code. Use the %1$s, %2$s, or %3$s buttons to wrap code snippets.', 'wporg' ),
-					'<span class="text-button">php</span>',
-					'<span class="text-button">js</span>',
-					'<span class="text-button">' . __( 'inline code', 'wporg' ) . '</span>'
-				)
-				. '</li></ul></p>',
-			'comment_notes_after' => '<p>'
-				. __( 'Submission Notes:', 'wporg' )
-				. '<ul><li>'
-				. __( 'This form is not for support requests, discussions, spam, bug reports, complaints, or self-promotion. Entries of this nature will be deleted.', 'wporg' )
-				. '</li><li>'
-				. __( 'In the editing area the Tab key enters a tab character. To move below this area by pressing Tab, press the Esc key followed by the Tab key. In some cases the Esc key will need to be pressed twice before the Tab key will allow you to continue.', 'wporg' )
-				. '</li><li class="user-notes-are-gpl">'
-				. sprintf(
-					/* translators: 1: GFDL link */
-					__( '<strong>NOTE:</strong> All contributions are licensed under %s and are moderated before appearing on the site.', 'wporg' ),
-					'<a href="https://gnu.org/licenses/fdl.html">GFDL</a>'
-				)
-				. '</li></ul></p>',
-			'label_submit'        => __( 'Add Note or Feedback', 'wporg' ),
-			'cancel_reply_link'   => '',
-			'must_log_in'         => '<p>' . sprintf(
-				__( 'You must <a href="%s">log in</a> before being able to contribute a note or feedback.', 'wporg' ),
-				'https://login.wordpress.org/?redirect_to=' . urlencode( get_comments_link() )
-			) . '</p>',
-			'title_reply'         => '', //'Add Example'
-			'title_reply_to'      => '',
-		);
-
-		if ( class_exists( 'DevHub_Note_Preview' ) ) {
-			$args['comment_notes_after'] = DevHub_Note_Preview::comment_preview() . $args['comment_notes_after'];
-			$args['class_form']          = 'comment-form tab-container';
-		}
-
-		if ( class_exists( 'DevHub_User_Submitted_Content' ) ) {
-			$args['comment_field'] = DevHub_User_Submitted_Content::wp_editor_comments();
-		}
-
 		// Insert comment form if feedback form is not already used.
-		if ( empty( $feedback_editor ) ) {
+		if ( empty( $feedback_editor ) && class_exists( 'DevHub_User_Submitted_Content' ) )  {
+			$args = \DevHub_User_Submitted_Content::comment_form_args();
 			comment_form( $args );
 		}
 		?>
Index: sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-developer/functions.php
===================================================================
--- sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-developer/functions.php	(revision 7118)
+++ sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-developer/functions.php	(working copy)
@@ -56,6 +56,11 @@
 require __DIR__ . '/inc/user-content-voting.php';
 
 /**
+ * Editing for user-submitted content.
+ */
+require __DIR__ . '/inc/user-content-edit.php';
+
+/**
  * CLI commands custom post type and importer.
  */
 require __DIR__ . '/inc/cli.php';
Index: sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-developer/inc/template-tags.php
===================================================================
--- sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-developer/inc/template-tags.php	(revision 7118)
+++ sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-developer/inc/template-tags.php	(working copy)
@@ -202,7 +202,6 @@
 				// Feedback links to log in, add feedback or show feedback.
 				echo "<footer class='feedback-links' >\n";
 				if ( $can_user_post_note ) {
-					echo "EEE";
 					$feedback_link = trailingslashit( get_permalink() ) . "?replytocom={$comment_id}#feedback-editor-{$comment_id}";
 					$display       = '';
 					$aria          = '';
@@ -243,10 +242,16 @@
 			$approved       = ( 0 < (int) $comment->comment_approved ) ? true : false;
 			$is_parent      = ( 0 === (int) $comment->comment_parent ) ? true : false;
 			$is_voting      = class_exists( 'DevHub_User_Contributed_Notes_Voting' );
+			$is_edit        = class_exists( 'DevHub_User_Content_Edit' );
 			$count          = $is_voting ? (int)  DevHub_User_Contributed_Notes_Voting::count_votes( $comment->comment_ID, 'difference' ) : 0;
 			$curr_user_note = $is_voting ? (bool) DevHub_User_Contributed_Notes_Voting::is_current_user_note( $comment->comment_ID ) : false;
+			$edited_note_id = $is_edit ? DevHub_User_Content_Edit::get_edited_note() : 0;
+			$is_edited_note = $edited_note_id && ( (int) $comment->comment_ID === $edited_note_id );
+			$note_author    = \DevHub\get_note_author_link( $comment );
+			$can_edit_note  = \DevHub\can_user_edit_note( $comment->comment_ID );
+			$has_edit_cap   = current_user_can( 'edit_comment', $comment->comment_ID );
 
-			// Classes
+			// CSS Classes
 			$comment_class = array();
 
 			if ( -1 > $count ) {
@@ -261,21 +266,6 @@
 				$comment_class[] = 'user-note-moderated';
 			}
 
-			// This would all be moot if core passed the $comment context for 'get_comment_author_link' filter.
-			if ( $comment->user_id ) {
-				$commenter = get_user_by( 'id', $comment->user_id );
-				$url = 'https://profiles.wordpress.org/' . sanitize_key( $commenter->user_nicename ) . '/';
-				$author = get_the_author_meta( 'display_name', $comment->user_id );
-			} else {
-				$url = $comment->comment_author_url;
-				$author = $comment->comment_author;
-			}
-
-			$comment_author_link = $author;
-			if ( $url ) {
-				$comment_author_link = "<a href='$url' rel='external nofollow' class='url'>$author</a>";
-			}
-
 			$date = sprintf( _x( '%1$s ago', '%1$s = human-readable time difference', 'wporg' ),
 				human_time_diff( get_comment_time( 'U' ),
 				current_time( 'timestamp' ) )
@@ -300,17 +290,27 @@
 							echo get_avatar( $comment, $args['avatar_size'] );
 						}
 
-						printf( __( 'Contributed by %s', 'wporg' ), sprintf( '<cite class="fn">%s</cite>', $comment_author_link ) );
+						printf( __( 'Contributed by %s', 'wporg' ), sprintf( '<cite class="fn">%s</cite>', $note_author ) );
 						?>
 
 						</span>
 						&mdash;
-						<a href="<?php echo esc_url( get_comment_link( $comment->comment_ID ) ); ?>">
+						<a class="comment-date" href="<?php echo esc_url( get_comment_link( $comment->comment_ID ) ); ?>">
 							<time datetime="<?php comment_time( 'c' ); ?>">
 							<?php echo $date; ?>
 							</time>
 						</a>
 						<?php edit_comment_link( __( 'Edit', 'wporg' ), '<span class="edit-link">&mdash; ', '</span>' ); ?>
+						<?php if ( ! $has_edit_cap && $can_edit_note ) : ?>
+							&mdash; <span class="comment-author-edit-link">
+								<a class="comment-edit-link" href="<?php echo site_url( "/reference/comment/edit/{$comment->comment_ID}" ); ?>"><?php _e( 'Edit', 'wporg' ); ?></a>
+							</span>
+						<?php endif; ?>
+						<?php if ( $can_edit_note && $is_edited_note ) : ?>
+							&mdash; <span class="comment-edited">
+							<?php _e( 'edited', 'wporg' ); ?>
+							</span>
+						<?php endif; ?>
 						<?php if ( ! $approved ) : ?>
 							&mdash; <span class="comment-awaiting-moderation"><?php _e( 'awaiting moderation', 'wporg' ); ?></span>
 						<?php endif; ?>
@@ -325,15 +325,22 @@
 					comment_text();
 				} else {
 					$text = get_comment_text()  . ' &mdash; ';
-					$text .= sprintf( __( 'By %s', 'wporg' ), sprintf( '<cite class="fn">%s</cite>', $comment_author_link ) ) . ' &mdash; ';
-					$text .= ' <a href="'. esc_url( get_comment_link( $comment->comment_ID ) ) . '">';
+					$text .= sprintf( __( 'By %s', 'wporg' ), sprintf( '<cite class="fn">%s</cite>', $note_author ) ) . ' &mdash; ';
+					$text .= ' <a class="comment-date" href="'. esc_url( get_comment_link( $comment->comment_ID ) ) . '">';
 					$text .= '<time datetime="' . get_comment_time( 'c' ) . '">' . $date . '</time></a>';
 
-					if ( current_user_can( 'edit_comment', $comment->comment_ID ) ) {
+					if ( $has_edit_cap ) {
 						$text .= ' &mdash; <a class="comment-edit-link" href="' . get_edit_comment_link( $comment->comment_ID ) .'">';
 						$text .= __( 'Edit', 'wporg' ) . '</a>';
+					} elseif ( $can_edit_note ) {
+						$text .= ' &mdash; <a class="comment-edit-link" href="' . site_url( "/reference/comment/edit/{$comment->comment_ID}" ) . '">';
+						$text .= __( 'Edit', 'wporg' ) . '</a>';
 					}
 
+					if( $can_edit_note && $is_edited_note ) {
+						$text .= ' &mdash; <span class="comment-edited">' . __( 'edited', 'wporg' ) . '</span>';
+					}
+
 					if ( ! $approved ) {
 						$text .= ' &mdash; <span class="comment-awaiting-moderation">' . __( 'awaiting moderation', 'wporg' ) . '</span>';
 					}
@@ -1397,6 +1404,74 @@
 	}
 
 	/**
+	 * Indicates if the current user can edit a user contibuted note.
+	 *
+	 * A user can edit a note if the note is from a parsed post type, and
+	 *     the note is from the current user and it's not yet approved.
+	 *     Or if the user has the 'edit_comment' capability.
+	 *
+	 * @param integer $note_id Note ID.
+	 * @return bool True if the current user can edit the note.
+	 */
+	function can_user_edit_note( $note_id = 0 ) {
+		$user = get_current_user_id();
+		$note = get_comment( $note_id );
+		if ( ! $user || ! $note ) {
+			return false;
+		}
+
+		$post_id        = isset( $note->comment_post_ID ) ? (int) $note->comment_post_ID : 0;
+		$is_note_author = isset( $note->user_id ) && ( (int) $note->user_id === $user );
+		$is_approved    = isset( $note->comment_approved ) && ( 0 < (int) $note->comment_approved );
+		$can_edit_notes = isset( $note->comment_ID ) && current_user_can( 'edit_comment', $note->comment_ID );
+		$is_parsed_type = is_parsed_post_type( get_post_type( $post_id ) );
+
+		if ( $is_parsed_type && ( $can_edit_notes || ( $is_note_author && ! $is_approved ) ) ) {
+			return true;
+		}
+
+		return false;
+	}
+
+	/**
+	 * Get the note author link to the profiles.wordpress.org author's URL.
+	 *
+	 * @param WP_Comment|int $comment Comment object or comment ID.
+	 * @return string The HTML link to the profiles.wordpress.org author's URL.
+	 */
+	function get_note_author_link( $comment ) {
+		return get_note_author( $comment, true );
+	}
+
+	/**
+	 * Get the note author nicename.
+	 *
+	 * @param WP_Comment|int $comment Comment object or comment ID.
+	 * @param bool           $link. Whether to return a link to the author's profiles. Default false.
+	 * @return string The comment author name or HTML link.
+	 */
+	function get_note_author( $comment, $link = false ) {
+		$comment   = get_comment( $comment );
+		$user_id   = isset( $comment->user_id ) ? $comment->user_id : 0;
+		$commenter = get_user_by( 'id', $comment->user_id );
+		$author    = '';
+
+		if ( $user_id && isset( $commenter->user_nicename ) ) {
+			$url    = 'https://profiles.wordpress.org/' . sanitize_key( $commenter->user_nicename ) . '/';
+			$author = get_the_author_meta( 'display_name', $comment->user_id );
+		} else {
+			$url    = isset( $comment->comment_author_url ) ?  $comment->comment_author_url : '';
+			$author = isset( $comment->comment_author ) ?  $comment->comment_author : '';
+		}
+
+		if ( $link && ( $url && $author ) ) {
+			$author = "<a href='$url' rel='external nofollow' class='url'>$author</a>";
+		}
+
+		return $author;
+	}
+
+	/**
 	 * Gets the summary.
 	 *
 	 * The summary (aka short description) is stored in the 'post_excerpt' field.
Index: sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-developer/inc/user-content-edit.php
===================================================================
--- sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-developer/inc/user-content-edit.php	(nonexistent)
+++ sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-developer/inc/user-content-edit.php	(working copy)
@@ -0,0 +1,180 @@
+<?php
+/**
+ * Code Reference edit user submitted content (comments, notes, etc).
+ *
+ * @package wporg-developer
+ */
+
+/**
+ * Class to handle editing user submitted content.
+ */
+class DevHub_User_Content_Edit {
+
+	private static $updated_note = 0;
+
+	/**
+	 * Initializer
+	 */
+	public static function init() {
+		add_action( 'init', array( __CLASS__, 'do_init' ) );
+	}
+
+	/**
+	 * Handles adding/removing hooks to enable editing comments.
+	 * Adds rewrite rules for editing comments in the front end.
+	 */
+	public static function do_init() {
+		// Add the edit comment rewrite rule
+		add_rewrite_rule( 'reference/comment/edit/([0-9]{1,})/?$', 'index.php?feedback_id=$matches[1]', 'top' );
+
+		// Add feedback_id query var for editing.
+		add_filter( 'query_vars',                      array( __CLASS__, 'comment_query_var' ) );
+
+		// Redirect to home page is the edit request is invalid.
+		add_action( 'template_redirect',               array( __CLASS__, 'redirect_invalid_edit_request' ) );
+
+		// Include the edit template.
+		add_filter( 'template_include',                array( __CLASS__, 'template_include' ) );
+
+		// Set the post_type and post for the edit request.
+		add_action( 'pre_get_posts',                   array( __CLASS__, 'pre_get_posts' ) );
+
+		// Update the comment.
+		add_action( 'wp', array( __CLASS__, 'update_comment' ) );
+	}
+
+	/**
+	 * Get the note ID that was edited.
+	 *
+	 * @return int Note ID that was edited or 0.
+	 */
+	public static function get_edited_note() {
+		return self::$updated_note ? (int) self::$updated_note : 0;
+	}
+
+	/**
+	 * Add feedback_id to the public query vars.
+	 *
+	 * @param array $query_vars Array with public query vars.
+	 * @return array Public query vars.
+	 */
+	public static function comment_query_var( $query_vars ) {
+		$query_vars[] = 'feedback_id';
+		return $query_vars;
+	}
+
+	/**
+	 * Update a comment after editing.
+	 *
+	 */
+	public static function update_comment() {
+		self::$updated_note = 0;
+
+		if ( ! is_single() || ( 'POST' !== $_SERVER['REQUEST_METHOD'] ) ) {
+			return;
+		}
+
+		$comment_data = wp_unslash( $_POST );
+
+		$defaults = array(
+			'edit_contributed_note',
+			'_wpnonce',
+			'comment_ID',
+			'comment',
+			'comment_parent',
+			'comment_post_ID'
+		);
+
+		foreach ( $defaults as $value ) {
+			if ( ! isset( $comment_data[ $value ] ) ) {
+				// Return if any of the default values is missing.
+				return;
+			}
+		}
+
+		$action   = 'update-note_' . $comment_data['comment_ID'];
+		$verified = wp_verify_nonce( $comment_data['_wpnonce'], $action );
+
+		if ( $verified && DevHub\can_user_edit_note( (int) $comment_data['comment_ID'] ) ) {
+			self::$updated_note = (int) $comment_data['comment_ID'];
+			$comment = trim( (string) $comment_data['comment'] );
+			$comment_data['comment_content'] = $comment;
+			wp_update_comment( $comment_data );
+		}
+	}
+
+	/**
+	 * Use the 'comments-edit.php' template for editing comments.
+	 *
+	 * @param string $template Template to include.
+	 * @return string           Template to include.
+	 */
+	public static function template_include( $template ) {
+		$comment = get_query_var( 'feedback_id' );
+		if ( ! $comment ) {
+			return $template;
+		}
+
+		$comment_template = get_query_template( "comments-edit" );
+		if ( $comment_template ) {
+			$template = $comment_template;
+		}
+		return $template;
+	}
+
+	/**
+	 * Redirects to the home page if the edit request is invalid for the current user.
+	 *
+	 * Redirects if the current user is not the comment author.
+	 * Redirects if the comment doesn't exist.
+	 * Redirects if the comment is not for a parsed post type.
+	 * Redirects if a comment is already approved.
+	 *
+	 * Doesn't redirect for users with the edit_comment capability.
+	 */
+	public static function redirect_invalid_edit_request() {
+		$comment_id = absint( get_query_var( 'feedback_id' ) );
+		if ( ! $comment_id ) {
+			return;
+		}
+
+		if ( !  DevHub\can_user_edit_note( $comment_id ) ) {
+			// Redirect if you're not the comment author.
+			wp_redirect( home_url() );
+			exit();
+		}
+	}
+
+	/**
+	 * Set's the post and post type for the edit request.
+	 *
+	 * Trows a 404 if the current user can't edit the requested note.
+	 *
+	 * @param WP_Query $query The WP_Query instance (passed by reference)
+	 */
+	public static function pre_get_posts( $query ) {
+		if ( ! ( $query->is_main_query() && $query->get( 'feedback_id' ) ) ) {
+			// Not a query for editing a note.
+			return;
+		}
+
+		$comment_id = $query->get( 'feedback_id' );
+
+		if (  DevHub\can_user_edit_note( $comment_id ) ) {
+			$comment = get_comment( $comment_id );
+			if ( isset( $comment->comment_post_ID ) ) {
+				$query->is_singular = true;
+				$query->is_single = true;
+				$query->set( 'post_type', get_post_type( $comment->comment_post_ID ) );
+				$query->set( 'p', $comment->comment_post_ID );
+			} else {
+				$query->set_404();
+			}
+		} else {
+			$query->set_404();
+		}
+	}
+
+} // DevHub_User_Content_Edit
+
+DevHub_User_Content_Edit::init();
Index: sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-developer/inc/user-content.php
===================================================================
--- sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-developer/inc/user-content.php	(revision 7118)
+++ sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-developer/inc/user-content.php	(working copy)
@@ -50,7 +50,7 @@
 		remove_filter( 'comment_text',                 'capital_P_dangit',   31 );
 
 		// Enable shortcodes for comments
-		add_filter( 'comment_text',                    'do_shortcode');
+		add_filter( 'comment_text',                    'do_shortcode' );
 
 		// Customize allowed tags
 		add_filter( 'wp_kses_allowed_html',            array( __CLASS__, 'wp_kses_allowed_html' ), 10, 2 );
@@ -67,6 +67,8 @@
 		// Allowed HTML for an edited child comment (There is no decent hook to filter child comments only)
 		add_action( 'edit_comment',                    array( __CLASS__, 'comment_edit_allowed_html' ) );
 
+		// Adds hidden fields for editing to a comment form
+		add_filter( 'comment_form_submit_field',       array( __CLASS__, 'add_hidden_fields' ), 10, 2 );
 	}
 
 	/**
@@ -167,9 +169,9 @@
 			wp_enqueue_script( 'wporg-developer-user-notes', get_template_directory_uri() . '/js/user-notes.js', array( 'jquery', 'quicktags' ), '20180323', true );
 			wp_enqueue_script( 'wporg-developer-user-notes-feedback', get_template_directory_uri() . '/js/user-notes-feedback.js', array( 'jquery', 'quicktags' ), '20180323', true );
 			wp_localize_script( 'wporg-developer-user-notes-feedback', 'wporg_note_feedback', array(
-				'show' => __( 'Show Feedback', 'wporg' ),
-				'hide' => __( 'Hide Feedback', 'wporg' ),
-			) );
+					'show' => __( 'Show Feedback', 'wporg' ),
+					'hide' => __( 'Hide Feedback', 'wporg' ),
+				) );
 		}
 	}
 
@@ -176,7 +178,7 @@
 	/**
 	 * Sets the default language for SyntaxHighlighter shortcode.
 	 *
-	 * @param  array $atts Shortcode attributes.
+	 * @param array $atts Shortcode attributes.
 	 * @return array
 	 */
 	public static function syntaxhighlighter_shortcodeatts( $atts ) {
@@ -187,7 +189,7 @@
 	/**
 	 * Subverts capital_P_dangit for SyntaxHighlighter shortcode.
 	 *
-	 * @param  string $code
+	 * @param string $code
 	 * @return string
 	 */
 	public static function syntaxhighlighter_precode( $code ) {
@@ -195,40 +197,124 @@
 	}
 
 	/**
+	 * Add hidden fields to the comment form if the context is 'edit'
+	 *
+	 * @param string $submit_field HTML string with the submit button fields.
+	 * @param array  $args         Arguments for the comment form.
+	 * @return HTML string with the submit button fields.
+	 */
+	public static function add_hidden_fields( $submit_field, $args ) {
+		$context = isset( $args['context'] ) ? $args['context'] : '';
+		$comment = isset( $args['comment_edit'] ) ? $args['comment_edit'] : false;
+		if ( ! ( $comment && ( 'edit' === $context ) ) ) {
+			return $submit_field;
+		}
+
+		$comment_id = isset( $comment->comment_ID ) ? $comment->comment_ID : 0;
+
+		return $submit_field . self::get_edit_fields( $comment_id, $instance = 0 );
+	}
+
+	/**
+	 * Get the comment form arguments by context.
+	 *
+	 * @param WP_Comment|false $comment Comment object or false. Default false.
+	 * @param string           $context Context of arguments. Accepts 'edit' or empty string.
+	 * @return array Array with comment form arguments.
+	 */
+	public static function comment_form_args( $comment = false, $context = '' ) {
+		$label = _x( 'Add Note or Feedback', 'noun', 'wporg' );
+		if ( 'edit' === $context ) {
+			$label = _x( 'Edit Note', 'noun', 'wporg' );
+		}
+
+		$args = array(
+			'logged_in_as'        => '<p class="logged-in-as">'
+			. sprintf(
+				/* translators: 1: user profile link, 2: accessibility text, 3: user name, 4: logout URL */
+				__( '<a href="%1$s" aria-label="%2$s">Logged in as %3$s</a>. <a href="%4$s">Log out?</a>' ),
+				'https://profiles.wordpress.org/' . esc_attr( wp_get_current_user()->user_nicename ),
+				/* translators: %s: user name */
+				esc_attr( sprintf( __( 'Logged in as %s. Edit your profile.' ), $user_identity ) ),
+				$user_identity,
+				wp_logout_url( apply_filters( 'the_permalink', get_permalink() ) )
+			)
+			. '</p><p><ul><li>'
+			. __( 'Notes should supplement code reference entries, for example examples, tips, explanations, use-cases, and best practices.', 'wporg' )
+			. '</li><li>'
+			. __( 'Feedback can be to report errors or omissions with the documentation on this page. Such feedback will not be publicly posted.', 'wporg' )
+			. '</li><li>'
+			/* translators: 1: php button, 2: js button, 3: inline code button */
+			. sprintf(
+				__( 'You can enter text and code. Use the %1$s, %2$s, or %3$s buttons to wrap code snippets.', 'wporg' ),
+				'<span class="text-button">php</span>',
+				'<span class="text-button">js</span>',
+				'<span class="text-button">' . __( 'inline code', 'wporg' ) . '</span>'
+			)
+			. '</li></ul></p>',
+			'comment_notes_after' => '<p>' . __( 'Submission Notes:', 'wporg' ) . '</p>' . self::get_editor_rules(),
+			'label_submit'        => $label,
+			'cancel_reply_link'   => '',
+			'must_log_in'         => '<p>' . sprintf(
+				__( 'You must <a href="%s">log in</a> before being able to contribute a note or feedback.', 'wporg' ),
+				'https://login.wordpress.org/?redirect_to=' . urlencode( get_comments_link() )
+			) . '</p>',
+			'title_reply'         => '', //'Add Example'
+			'title_reply_to'      => '',
+		);
+
+		if ( class_exists( 'DevHub_Note_Preview' ) ) {
+			$args['comment_notes_after'] = DevHub_Note_Preview::comment_preview() . $args['comment_notes_after'];
+			$args['class_form']          = "comment-form tab-container";
+		}
+
+		$args['comment_field'] = self::wp_editor_comments( $label, $comment );
+		$args['context'] = $context;
+		$args['comment_edit'] = $comment;
+
+		if ( $comment && ( 'edit' === $context ) ) {
+			$comment_id = isset( $comment->comment_ID ) ? $comment->comment_ID : 0;
+			$post_id    = isset( $comment->comment_post_ID ) ? $comment->comment_post_ID : 0;
+
+			$args['action'] = get_permalink( $post_id ) . '#comment-' . $comment_id;
+		}
+
+		return $args;
+	}
+
+	/**
 	 * Capture an {@see wp_editor()} instance as the 'User Contributed Notes' comment form.
 	 *
 	 * Uses output buffering to capture the editor instance for use with the {@see comments_form()}.
 	 *
+	 * @param string           $label   Label used for the editor.
+	 * @param WP_Comment|false $comment Comment object or false. Default false.
 	 * @return string HTML output for the wp_editor-ized comment form.
 	 */
-	public static function wp_editor_comments() {
+	public static function wp_editor_comments( $label, $comment = false ) {
+		$content = isset( $comment->comment_content ) ? $comment->comment_content : '';
+
 		ob_start();
-		echo '<h3><label for="comment">' . _x( 'Add Note or Feedback', 'noun', 'wporg' ) . '</label></h3>';
+		echo '<h3><label for="comment">' . $label . '</label></h3>';
 
 		if ( class_exists( 'DevHub_Note_Preview' ) ) {
-			echo '<ul class="tablist" style="display:none;">';
+			echo "<ul class='tablist' style='display: none;'>";
 			echo '<li><a href="#comment-form-comment">' . __( 'Write', 'wporg' ) . '</a></li>';
 			echo '<li><a href="#comment-preview">' . __( 'Preview', 'wporg' ) . '</a></li></ul>';
 		}
 
-		$style = '<style type="text/css">';
-		ob_start();
-		include get_stylesheet_directory() . '/stylesheets/editor-style.css';
-		$style .= ob_get_clean();
-		$style .=' </style>';
-
 		echo '<div class="comment-form-comment tab-section" id="comment-form-comment">';
-		wp_editor( '', 'comment', array(
-			'media_buttons' => false,
-			'editor_css'    => $style,
-			'textarea_name' => 'comment',
-			'textarea_rows' => 8,
-			'quicktags'     => array(
-				'buttons' => 'strong,em,ul,ol,li'
-			),
-			'teeny'         => true,
-			'tinymce'       => false,
-		) );
+		wp_editor( $content, 'comment', array(
+				'media_buttons' => false,
+				'editor_css'    => self::get_editor_style(),
+				'textarea_name' => 'comment',
+				'textarea_rows' => 8,
+				'quicktags'     => array(
+					'buttons' => 'strong,em,ul,ol,li'
+				),
+				'teeny'         => true,
+				'tinymce'       => false,
+			) );
 		echo '</div>';
 		return ob_get_clean();
 	}
@@ -238,9 +324,12 @@
 	 *
 	 * Uses output buffering to capture the editor instance.
 	 *
+	 * @param WP_Comment|false $comment Comment object or false. Default false.
+	 * @param string           $display Display the editor. Default 'show'.
+	 * @param bool             $edit    True if the editor used for editing a note. Default false.
 	 * @return string HTML output for the wp_editor-ized feedback form.
 	 */
-	public static function wp_editor_feedback( $comment, $display = 'show', $content = '' ) {
+	public static function wp_editor_feedback( $comment, $display = 'show', $edit = false ) {
 
 		if ( ! ( isset( $comment->comment_ID ) && absint( $comment->comment_ID ) ) ) {
 			return '';
@@ -251,15 +340,30 @@
 		static $instance = 0;
 		$instance++;
 
-		$display     = ( 'hide' === $display ) ? ' style="display: none;"' : '';
-		$title       = __( 'Add feedback to this note', 'wporg' );
-		$form_type   = '';
-		$button_text = __( 'Add Feedback', 'wporg' );
+		$display       = ( 'hide' === $display ) ? ' style="display: none;"' : '';
+		$parent        = $comment_id;
+		$action        = site_url( '/wp-comments-post.php' );
+		$content       = '';
+		$title         = __( 'Add feedback to this note', 'wporg' );
+		$form_type     = '';
+		$button_text   = __( 'Add Feedback', 'wporg' );
+		$post_id       = isset( $comment->comment_post_ID ) ? $comment->comment_post_ID : get_the_ID();
+		$note_link     = '';
 
-		if ( $content ) {
+		if ( $edit ) {
+			$content     = isset( $comment->comment_content ) ? $comment->comment_content : '';
 			$title       = __( 'Edit feedback', 'wporg' );
 			$form_type   = '-edit';
-			$button_text = __( 'Edit Feedback', 'wporg' );
+			$button_text = __( 'Edit Note', 'wporg' );
+			$action      = get_permalink( $post_id ) . '#comment-' . $comment_id;
+
+			$parent        = isset( $comment->comment_parent ) ? $comment->comment_parent : 0;
+			$parent_url    = get_permalink( $post_id ) . '#comment-' . $parent;
+			$parent_author = \DevHub\get_note_author( $parent );
+			$parent_note   = sprintf( __( 'note %d', 'wporg' ), $parent );
+	
+			/* translators: 1: note, 2: note author name */
+			$note_link = sprintf( __( '%1$s by %2$s', 'wporg' ), "<a href='{$parent_url}'>{$parent_note}</a>", $parent_author );
 		}
 
 		$allowed_tags = '';
@@ -269,29 +373,105 @@
 
 		ob_start();
 		echo "<div id='feedback-editor-{$comment_id}' class='feedback-editor'{$display}>\n";
-		echo "<p class='feedback-editor-title'>{$title}</p>\n";
-		echo '<form id="feedback-form-' . $instance . $form_type . '" class="feedback-form" method="post" action="' . site_url( '/wp-comments-post.php' ) . '" name="feedback-form-' . $instance ."\">\n";
+		if ( ! $edit ) {
+			echo "<p class='feedback-editor-title'>{$title}</p>\n";
+		}
 
-		wp_editor( '', 'feedback-' . $instance, array(
-			'media_buttons' => false,
-			'textarea_name' => 'comment',
-			'textarea_rows' => 3,
-			'quicktags'     => array(
-				'buttons' => 'strong,em'
-			),
-			'teeny'         => true,
-			'tinymce'       => false,
-		) );
+		echo "<form id='feedback-form-{$instance}{$form_type}' class='feedback-form' method='post' action='{$action}' name='feedback-form-{$instance}'>\n";
+		echo self::get_editor_rules( 'feedback', $note_link );
+		wp_editor( $content, 'feedback-' . $instance, array(
+				'media_buttons' => false,
+				'textarea_name' => 'comment',
+				'textarea_rows' => 3,
+				'quicktags'     => array(
+					'buttons' => 'strong,em'
+				),
+				'editor_css'    => self::get_editor_style(),
+				'teeny'         => true,
+				'tinymce'       => false,
+			) );
 
 		echo '<p><strong>' . __( 'Note', 'wporg' ) . '</strong>: ' . __( 'No newlines allowed', 'wporg' ) . '. ';
 		printf( __( 'Allowed tags: %s', 'wporg' ), trim( $allowed_tags, ', ' ) ) . "</p>\n";
-		echo "<p><input id='submit-{$instance}' class='submit' type='submit' value='Add Feedback' name='submit-{$instance}'>\n";
-		echo "<input type='hidden' name='comment_post_ID' value='" . get_the_ID() . "' id='comment_post_ID-{$instance}' />\n";
-		echo "<input type='hidden' name='comment_parent' id='comment_parent-{$instance}' value='{$comment_id}' />\n";
+		echo "<p><input id='submit-{$instance}' class='submit' type='submit' value='{$button_text}' name='submit-{$instance}'>\n";
+		echo "<input type='hidden' name='comment_post_ID' value='{$post_id}' id='comment_post_ID-{$instance}' />\n";
+		echo "<input type='hidden' name='comment_parent' id='comment_parent-{$instance}' value='{$parent}' />\n";
+
+		if ( $edit ) {
+			echo self::get_edit_fields( $comment_id, $instance );
+		}
+
 		echo "</p>\n</form>\n</div><!-- #feedback-editor-{$comment_id} -->\n";
 		return ob_get_clean();
 	}
 
+	/**
+	 * Get the rules list for the comment form.
+	 *
+	 * @param string $context Accepts 'feedback' or empty sring
+	 * @return string Editor rules.
+	 */
+	function get_editor_rules( $context = '', $note_link = '' ) {
+		$license_rule = sprintf(
+				/* translators: 1: GFDL link */
+				__( '<strong>NOTE:</strong> All contributions are licensed under %s and are moderated before appearing on the site.', 'wporg' ),
+				'<a href="https://gnu.org/licenses/fdl.html">GFDL</a>'
+			);
+
+		if ( 'feedback' === $context ) {
+			$feedback_rule = __( 'Use this form to report errors or to add additional information to this note.', 'wporg' );
+			if ( $note_link ) {
+				$feedback_rule = sprintf( __( 'Use this form to report errors or to add additional information to %s.', 'wporg' ), $note_link );
+			}
+
+			return '<ul><li>'
+				. __( 'Feedback is part of the documentation.', 'wporg' ) . ' '
+				. $feedback_rule
+				. '</li><li>'
+				. __( 'This form is not for support requests, spam, bug reports, complaints, or self-promotion. Entries of this nature will be deleted.', 'wporg' )
+				. '</li><li class="user-notes-are-gpl">'
+				. $license_rule
+				. '</li></ul>';
+		}
+
+		return '<ul><li>'
+			. __( 'This form is not for support requests, discussions, spam, bug reports, complaints, or self-promotion. Entries of this nature will be deleted.', 'wporg' )
+			. '</li><li>'
+			. __( 'In the editing area the Tab key enters a tab character. To move below this area by pressing Tab, press the Esc key followed by the Tab key. In some cases the Esc key will need to be pressed twice before the Tab key will allow you to continue.', 'wporg' )
+			. '</li><li class="user-notes-are-gpl">'
+			. $license_rule
+			. '</li></ul>';
+	}
+
+	/**
+	 * Get the editor styles.
+	 *
+	 * @return string Editor styles.
+	 */
+	function get_editor_style() {
+		$style = '<style type="text/css">';
+		ob_start();
+		include get_stylesheet_directory() . '/stylesheets/editor-style.css';
+		$style .= ob_get_clean();
+		$style .= ' </style>';
+		return $style;
+	}
+
+	/**
+	 * Get the hidden input fields HTML used when editing.
+	 *
+	 * @param int     $comment_id Comment ID.
+	 * @param integer $instance   Comment form instance number used in HTML id's.
+	 * @return string Hidden input fields HTML.
+	 */
+	function get_edit_fields( $comment_id, $instance = 0 ) {
+		$fields = "<input type='hidden' name='comment_ID' id='comment_ID-{$instance}' value='{$comment_id}' />\n";
+		$fields .= "<input type='hidden' name='edit_contributed_note' id='edit_note_feedback-{$instance}' value='1' />\n";
+		$fields .= wp_nonce_field( 'update-note_' . $comment_id, '_wpnonce', true, false );
+
+		return $fields;
+	}
+
 } // DevHub_User_Submitted_Content
 
 DevHub_User_Submitted_Content::init();
Index: sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-developer/js/user-notes-feedback.js
===================================================================
--- sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-developer/js/user-notes-feedback.js	(revision 7118)
+++ sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-developer/js/user-notes-feedback.js	(working copy)
@@ -4,8 +4,8 @@
 		return;
 	}
 
+	var wpAdminBar     = 0;
 	var options        = wporg_note_feedback;
-	var wpAdminBar     = $('#page.admin-bar').length ? 32 : 0;
 	var feedbackToggle = $( '<a class="feedback-toggle" href="#">' + options.show + '</a>' );
 	var hash           = window.location.hash;
 
@@ -78,29 +78,31 @@
 
 	// Show hidden child comments if the fragment identifier is a comment ID (e.g. #comment-63).  
 	$( document ).ready( function() {
-
+		wpAdminBar = $('#wpadminbar').length ? 32 : 0
 		var childComments = $( '.comment' ).find( 'ul.children' );
 
-		if ( !( hash.length && childComments.length ) ) {
+		if ( ! ( hash.length && childComments.length ) ) {
 			return;
 		}
 
-		var hashComment = childComments.find( hash ).first();
-		if ( hashComment.length ) {
-			// Child comment exists.
+		var hashComment = childComments.find( hash + '.depth-2' ).first();
+		if ( ! hashComment.length ) {
+			return;
+		}
+		// Child comment exists.
 
-			var parent = hashComment.closest( '.comment.depth-1' );
-			if ( parent.find( '.feedback' ).hasClass( 'hide-if-js' ) ) {
-				// Show child comments.
-				parent.find( '.feedback-toggle' ).first().trigger( 'click' );
-			}
+		var parent = hashComment.closest( '.comment.depth-1' );
+		if ( parent.find( '.feedback' ).hasClass( 'hide-if-js' ) ) {
+			// Show child comments.
+			parent.find( '.feedback-toggle' ).first().trigger( 'click' );
+		}
 
-			// Scroll to the child comment.
-			var pos = hashComment.offset();
-			$( 'html,body' ).animate( {
-				scrollTop: pos.top - wpAdminBar
-			}, 1 );
-		}
+		// Scroll to child comment and adjust for admin bar
+		var pos = hashComment.offset();
+		$( 'html,body' ).animate( {
+			scrollTop: pos.top - wpAdminBar
+		}, 1 );
+
 	} );
 
 	// Show/Hide feedback toggle link.
Index: sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-developer/js/user-notes-preview.js
===================================================================
--- sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-developer/js/user-notes-preview.js	(revision 7118)
+++ sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-developer/js/user-notes-preview.js	(working copy)
@@ -20,6 +20,9 @@
 		text = '';
 		processing = false;
 
+		// Show tabs with Javascript.
+		$( '#commentform .tablist').show();
+
 		if ( textarea.length && preview.length && tabs.length ) {
 
 			// Append spinner to preview tab
Index: sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-developer/js/user-notes.js
===================================================================
--- sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-developer/js/user-notes.js	(revision 7118)
+++ sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-developer/js/user-notes.js	(working copy)
@@ -5,17 +5,50 @@
 
 ( function( $ ) {
 
-	var commentForm = $( '.comment-form textarea' );
+	var commentForm = $( '.comment-form textarea' );	
+	var hash = window.location.hash;
+	var wpAdminBar = 0;
 
-	if ( !commentForm.length ) {
-		return;
+	// Check if the fragment identifier is a comment ID (e.g. #comment-63)
+	if ( ! hash.match( /#comment\-[0-9]+$/ ) ) {
+		hash = '';
 	}
 
+	// Scroll to top level comments
+	$( document ).ready( function() {
+		wpAdminBar = $( '#wpadminbar' ).length ? 32 : 0;
+		if( ! wpAdminBar || ! hash ) {
+			return;
+		}
+
+		var hashComment = $('#comments').find( hash + '.depth-1' ).first();
+		if( ! hashComment.length  ) {
+			return;
+		}
+
+		// Scroll to top level comment and adjust for admin bar.
+		var pos = hashComment.offset();
+		$( 'html,body' ).animate( {
+			scrollTop: pos.top - wpAdminBar
+		}, 1 );
+	} );
+
+	// Scroll to comment if comment date link is clicked
+	$( '#comments' ).on( 'click', '.comment-date', function( e ) {
+		e.preventDefault();
+
+		// Scroll to comment and adjust for admin bar
+		// Add 16px for child comments
+		var pos = $( this ).offset();
+		$( 'html,body' ).animate( {
+			scrollTop: pos.top - wpAdminBar - 16
+		}, 1 );
+	} );
+
 	function showCommentForm() {
+		$( '#add-user-note' ).hide();
 		$( '#respond' ).show();
-		$( '#add-user-note' ).hide();
 
-		var wpAdminBar = $( '#page.admin-bar' ).length ? 32 : 0;
 		var target     = $( '#commentform #add-note-or-feedback' );
 		if ( target.length ) {
 			var pos = target.offset();
@@ -28,7 +61,15 @@
 		}
 	}
 
-	$( '#respond, #add-user-note' ).toggle();
+	if ( ! commentForm.length ) {
+		return;
+	}
+
+	if( $('#add-user-note').length ) {
+		// Hide by default if #add-user-note exists
+		$( '#respond' ).hide();
+	}
+
 	$( '#add-user-note, .table-of-contents a[href="#add-note-or-feedback"]' ).click( function( e ) {
 		e.preventDefault();
 
Index: sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-developer/scss/main.scss
===================================================================
--- sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-developer/scss/main.scss	(revision 7118)
+++ sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-developer/scss/main.scss	(working copy)
@@ -1137,14 +1137,17 @@
 			opacity: 1;
 		}
 
-		.comment-awaiting-moderation {
+		.comment-awaiting-moderation,
+		.comment-edited {
 			background-color: #fff8e5;
 			padding: .2em .5em;
+			margin-right: .5em;
 			border-radius: 3px;
 			border: 1px solid #ffb900;
 		}
 
-		.depth-2 .comment-awaiting-moderation {
+		.depth-2 .comment-awaiting-moderation,
+		.depth-2 .comment-edited {
 			display: inline-block;
 			margin: 2px 0;
 		}
@@ -1170,7 +1173,8 @@
 		.comment-list li.depth-1,
 		#comment-preview {
 			border: 1px solid #dfdfdf;
-			border-radius: 2px;
+			border-radius: 2px;	
+			width: 100%;
 		}
 
 		// Feedback
@@ -1362,9 +1366,14 @@
 			padding: 0 5px;
 		}
 
-		.comment-form ul {
+		.comment-form ul, .feedback-form ul {
 			margin-left: 1.5em;
 		}
+
+		.feedback-form ul li {
+			margin: 0;
+			overflow: visible;
+		}
 	}
 
 	&.single-post {
Index: sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-developer/stylesheets/main.css
===================================================================
--- sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-developer/stylesheets/main.css	(revision 7118)
+++ sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-developer/stylesheets/main.css	(working copy)
@@ -1514,14 +1514,23 @@
   opacity: 1;
 }
 
-.devhub-wrap .single-wp-parser-function .comment-awaiting-moderation, .devhub-wrap .single-wp-parser-method .comment-awaiting-moderation, .devhub-wrap .single-wp-parser-hook .comment-awaiting-moderation, .devhub-wrap .single-wp-parser-class .comment-awaiting-moderation {
+.devhub-wrap .single-wp-parser-function .comment-awaiting-moderation,
+.devhub-wrap .single-wp-parser-function .comment-edited, .devhub-wrap .single-wp-parser-method .comment-awaiting-moderation,
+.devhub-wrap .single-wp-parser-method .comment-edited, .devhub-wrap .single-wp-parser-hook .comment-awaiting-moderation,
+.devhub-wrap .single-wp-parser-hook .comment-edited, .devhub-wrap .single-wp-parser-class .comment-awaiting-moderation,
+.devhub-wrap .single-wp-parser-class .comment-edited {
   background-color: #fff8e5;
   padding: .2em .5em;
+  margin-right: .5em;
   border-radius: 3px;
   border: 1px solid #ffb900;
 }
 
-.devhub-wrap .single-wp-parser-function .depth-2 .comment-awaiting-moderation, .devhub-wrap .single-wp-parser-method .depth-2 .comment-awaiting-moderation, .devhub-wrap .single-wp-parser-hook .depth-2 .comment-awaiting-moderation, .devhub-wrap .single-wp-parser-class .depth-2 .comment-awaiting-moderation {
+.devhub-wrap .single-wp-parser-function .depth-2 .comment-awaiting-moderation,
+.devhub-wrap .single-wp-parser-function .depth-2 .comment-edited, .devhub-wrap .single-wp-parser-method .depth-2 .comment-awaiting-moderation,
+.devhub-wrap .single-wp-parser-method .depth-2 .comment-edited, .devhub-wrap .single-wp-parser-hook .depth-2 .comment-awaiting-moderation,
+.devhub-wrap .single-wp-parser-hook .depth-2 .comment-edited, .devhub-wrap .single-wp-parser-class .depth-2 .comment-awaiting-moderation,
+.devhub-wrap .single-wp-parser-class .depth-2 .comment-edited {
   display: inline-block;
   margin: 2px 0;
 }
@@ -1561,6 +1570,7 @@
 .devhub-wrap .single-wp-parser-class #comment-preview {
   border: 1px solid #dfdfdf;
   border-radius: 2px;
+  width: 100%;
 }
 
 .devhub-wrap .single-wp-parser-function .comment-list li.depth-2, .devhub-wrap .single-wp-parser-method .comment-list li.depth-2, .devhub-wrap .single-wp-parser-hook .comment-list li.depth-2, .devhub-wrap .single-wp-parser-class .comment-list li.depth-2 {
@@ -1735,10 +1745,15 @@
   padding: 0 5px;
 }
 
-.devhub-wrap .single-wp-parser-function .comment-form ul, .devhub-wrap .single-wp-parser-method .comment-form ul, .devhub-wrap .single-wp-parser-hook .comment-form ul, .devhub-wrap .single-wp-parser-class .comment-form ul {
+.devhub-wrap .single-wp-parser-function .comment-form ul, .devhub-wrap .single-wp-parser-function .feedback-form ul, .devhub-wrap .single-wp-parser-method .comment-form ul, .devhub-wrap .single-wp-parser-method .feedback-form ul, .devhub-wrap .single-wp-parser-hook .comment-form ul, .devhub-wrap .single-wp-parser-hook .feedback-form ul, .devhub-wrap .single-wp-parser-class .comment-form ul, .devhub-wrap .single-wp-parser-class .feedback-form ul {
   margin-left: 1.5em;
 }
 
+.devhub-wrap .single-wp-parser-function .feedback-form ul li, .devhub-wrap .single-wp-parser-method .feedback-form ul li, .devhub-wrap .single-wp-parser-hook .feedback-form ul li, .devhub-wrap .single-wp-parser-class .feedback-form ul li {
+  margin: 0;
+  overflow: visible;
+}
+
 .devhub-wrap.single-post .comment-list,
 .devhub-wrap.single-post .comment-list ol {
   list-style: none;
