Index: src/includes/replies/capabilities.php
===================================================================
--- src/includes/replies/capabilities.php	(revision 6648)
+++ src/includes/replies/capabilities.php	(working copy)
@@ -136,9 +136,15 @@
 				if ( bbp_is_user_inactive( $user_id ) ) {
 					$caps = array( 'do_not_allow' );
 
-				// User is author so allow edit if not in admin
+				// User is author so allow edit if not in admin, unless it's past edit lock time
 				} elseif ( ! is_admin() && ( (int) $user_id === (int) $_post->post_author ) ) {
-					$caps = array( $post_type->cap->edit_posts );
+					if ( ! bbp_past_edit_lock( $_post->post_date_gmt ) ) {
+						$caps = array( $post_type->cap->edit_posts );
+					} elseif ( user_can( $user_id, 'moderate', $_post->ID ) ) {
+						$caps = array( 'spectate' );
+					} else {
+						$caps = array( 'do_not_allow' );
+					}
 
 				// Moderators can always edit forum content
 				} elseif ( user_can( $user_id, 'moderate', $_post->ID ) ) {
Index: src/includes/topics/capabilities.php
===================================================================
--- src/includes/topics/capabilities.php	(revision 6648)
+++ src/includes/topics/capabilities.php	(working copy)
@@ -156,9 +156,15 @@
 				if ( bbp_is_user_inactive( $user_id ) ) {
 					$caps = array( 'do_not_allow' );
 
-				// User is author so allow edit if not in admin
+				// User is author so allow edit if not in admin, unless it's past edit lock time
 				} elseif ( ! is_admin() && ( (int) $user_id === (int) $_post->post_author ) ) {
-					$caps = array( $post_type->cap->edit_posts );
+					if ( ! bbp_past_edit_lock( $_post->post_date_gmt ) ) {
+						$caps = array( $post_type->cap->edit_posts );
+					} elseif ( user_can( $user_id, 'moderate', $_post->ID ) ) {
+						$caps = array( 'spectate' );
+					} else {
+						$caps = array( 'do_not_allow' );
+					}
 
 				// Moderators can always edit forum content
 				} elseif ( user_can( $user_id, 'moderate', $_post->ID ) ) {
