Index: /trunk/src/includes/forums/template.php
===================================================================
--- /trunk/src/includes/forums/template.php	(revision 6527)
+++ /trunk/src/includes/forums/template.php	(revision 6528)
@@ -664,4 +664,14 @@
 		$parent_id = get_post_field( 'post_parent', $forum_id );
 
+		// Meta-data fallback
+		if ( empty( $parent_id ) ) {
+			$parent_id = get_post_meta( $forum_id, '_bbp_forum_id', true );
+		}
+
+		// Filter
+		if ( ! empty( $parent_id ) ) {
+			$parent_id = bbp_get_forum_id( $parent_id );
+		}
+
 		// Filter & return
 		return (int) apply_filters( 'bbp_get_forum_parent_id', (int) $parent_id, $forum_id );
@@ -2187,50 +2197,33 @@
 		if ( ! empty( $last_active ) ) {
 
+			// Has replies
 			if ( ! empty( $reply_count ) ) {
-
-				if ( bbp_is_forum_category( $forum_id ) ) {
-					$retstr = sprintf( esc_html__( 'This category contains %1$s and %2$s, and was last updated by %3$s %4$s.', 'bbpress' ), $topic_text, $reply_text, $last_updated_by, $time_since );
-				} else {
-					$retstr = sprintf( esc_html__( 'This forum contains %1$s and %2$s, and was last updated by %3$s %4$s.',    'bbpress' ), $topic_text, $reply_text, $last_updated_by, $time_since );
-				}
-
+				$retstr = bbp_is_forum_category( $forum_id )
+					? sprintf( esc_html__( 'This category has %1$s, %2$s, and was last updated %3$s by %4$s.', 'bbpress' ), $topic_text, $reply_text, $time_since, $last_updated_by )
+					: sprintf( esc_html__( 'This forum has %1$s, %2$s, and was last updated %3$s by %4$s.',    'bbpress' ), $topic_text, $reply_text, $time_since, $last_updated_by );
+
+			// Only has topics
 			} else {
-
-				if ( bbp_is_forum_category( $forum_id ) ) {
-					$retstr = sprintf( esc_html__( 'This category contains %1$s, and was last updated by %2$s %3$s.', 'bbpress' ), $topic_text, $last_updated_by, $time_since );
-				} else {
-					$retstr = sprintf( esc_html__( 'This forum contains %1$s, and was last updated by %2$s %3$s.',    'bbpress' ), $topic_text, $last_updated_by, $time_since );
-				}
+				$retstr = bbp_is_forum_category( $forum_id )
+					? sprintf( esc_html__( 'This category has %1$s, and was last updated %2$s by %3$s.', 'bbpress' ), $topic_text, $time_since, $last_updated_by )
+					: sprintf( esc_html__( 'This forum has %1$s, and was last updated %2$s by %3$s.',    'bbpress' ), $topic_text, $time_since, $last_updated_by );
 			}
 
-		// Forum has no last active data
+		// Forum has no last active data (but does have topics & replies)
+		} elseif ( ! empty( $reply_count ) ) {
+			$retstr = bbp_is_forum_category( $forum_id )
+				? sprintf( esc_html__( 'This category has %1$s and %2$s.', 'bbpress' ), $topic_text, $reply_text )
+				: sprintf( esc_html__( 'This forum has %1$s and %2$s.',    'bbpress' ), $topic_text, $reply_text );
+
+		// Forum has no last active data or replies (but does have topics)
+		} elseif ( ! empty( $topic_count ) ) {
+			$retstr = bbp_is_forum_category( $forum_id )
+				? sprintf( esc_html__( 'This category has %1$s.', 'bbpress' ), $topic_text )
+				: sprintf( esc_html__( 'This forum has %1$s.',    'bbpress' ), $topic_text );
+
+		// Forum is empty
 		} else {
-
-			if ( ! empty( $reply_count ) ) {
-
-				if ( bbp_is_forum_category( $forum_id ) ) {
-					$retstr = sprintf( esc_html__( 'This category contains %1$s and %2$s.', 'bbpress' ), $topic_text, $reply_text );
-				} else {
-					$retstr = sprintf( esc_html__( 'This forum contains %1$s and %2$s.',    'bbpress' ), $topic_text, $reply_text );
-				}
-
-			} else {
-
-				if ( ! empty( $topic_count ) ) {
-
-					if ( bbp_is_forum_category( $forum_id ) ) {
-						$retstr = sprintf( esc_html__( 'This category contains %1$s.', 'bbpress' ), $topic_text );
-					} else {
-						$retstr = sprintf( esc_html__( 'This forum contains %1$s.',    'bbpress' ), $topic_text );
-					}
-
-				} else {
-					$retstr = esc_html__( 'This forum is empty.', 'bbpress' );
-				}
-			}
-		}
-
-		// Add feeds
-		//$feed_links = ( ! empty( $r['feed'] ) ) ? bbp_get_forum_topics_feed_link ( $forum_id ) . bbp_get_forum_replies_feed_link( $forum_id ) : '';
+			$retstr = esc_html__( 'This forum is empty.', 'bbpress' );
+		}
 
 		// Add the 'view all' filter back
Index: /trunk/src/includes/replies/template.php
===================================================================
--- /trunk/src/includes/replies/template.php	(revision 6527)
+++ /trunk/src/includes/replies/template.php	(revision 6528)
@@ -1571,19 +1571,19 @@
 	 */
 	function bbp_get_reply_topic_id( $reply_id = 0 ) {
-
-		// Assume there is no topic id
-		$topic_id = 0;
-
-		// Check that reply_id is valid
 		$reply_id = bbp_get_reply_id( $reply_id );
-		if ( ! empty( $reply_id ) ) {
+		$topic_id = get_post_field( 'post_parent', $reply_id );
+
+		// Meta-data fallback
+		if ( empty( $topic_id ) ) {
 			$topic_id = get_post_meta( $reply_id, '_bbp_topic_id', true );
-			if ( ! empty( $topic_id ) ) {
-				$topic_id = bbp_get_topic_id( $topic_id );
-			}
-		}
-
-		// Filter & return
-		return (int) apply_filters( 'bbp_get_reply_topic_id', $topic_id, $reply_id );
+		}
+
+		// Filter
+		if ( ! empty( $topic_id ) ) {
+			$topic_id = bbp_get_topic_id( $topic_id );
+		}
+
+		// Filter & return
+		return (int) apply_filters( 'bbp_get_reply_topic_id', (int) $topic_id, $reply_id );
 	}
 
@@ -1612,15 +1612,15 @@
 	 */
 	function bbp_get_reply_forum_id( $reply_id = 0 ) {
-
-		// Assume there is no forum
-		$forum_id = 0;
-
-		// Check that reply_id is valid
 		$reply_id = bbp_get_reply_id( $reply_id );
-		if ( ! empty( $reply_id ) ) {
+		$forum_id = get_post_field( 'post_parent', bbp_get_reply_topic_id( $reply_id ) );
+
+		// Meta-data fallback
+		if ( empty( $forum_id ) ) {
 			$forum_id = get_post_meta( $reply_id, '_bbp_forum_id', true );
-			if ( ! empty( $forum_id ) ) {
-				$forum_id = bbp_get_forum_id( $forum_id );
-			}
+		}
+
+		// Filter
+		if ( ! empty( $forum_id ) ) {
+			$forum_id = bbp_get_forum_id( $forum_id );
 		}
 
Index: /trunk/src/includes/topics/template.php
===================================================================
--- /trunk/src/includes/topics/template.php	(revision 6527)
+++ /trunk/src/includes/topics/template.php	(revision 6528)
@@ -1881,5 +1881,15 @@
 	function bbp_get_topic_forum_id( $topic_id = 0 ) {
 		$topic_id = bbp_get_topic_id( $topic_id );
-		$forum_id = get_post_meta( $topic_id, '_bbp_forum_id', true );
+		$forum_id = get_post_field( 'post_parent', $topic_id );
+
+		// Meta-data fallback
+		if ( empty( $forum_id ) ) {
+			$forum_id = get_post_meta( $topic_id, '_bbp_forum_id', true );
+		}
+
+		// Filter
+		if ( ! empty( $forum_id ) ) {
+			$forum_id = bbp_get_forum_id( $forum_id );
+		}
 
 		// Filter & return
@@ -3676,13 +3686,13 @@
 		$voice_count = sprintf( _n( '%s voice', '%s voices', $vc_int, 'bbpress' ), $voice_count );
 
-		// Topic has replies
-		$last_reply = bbp_get_topic_last_reply_id( $topic_id );
-		if ( ! empty( $last_reply ) ) {
-			$last_updated_by = bbp_get_author_link( array( 'post_id' => $last_reply, 'size' => $r['size'] ) );
-			$retstr          = sprintf( esc_html__( 'This topic contains %1$s, has %2$s, and was last updated by %3$s %4$s.', 'bbpress' ), $reply_count, $voice_count, $last_updated_by, $time_since );
+		// Topic has activity (could be from reply or topic author)
+		$last_active = bbp_get_topic_last_active_id( $topic_id );
+		if ( ! empty( $last_active ) ) {
+			$last_updated_by = bbp_get_author_link( array( 'post_id' => $last_active, 'size' => $r['size'] ) );
+			$retstr          = sprintf( esc_html__( 'This topic has %1$s, %2$s, and was last updated %3$s by %4$s.', 'bbpress' ), $reply_count, $voice_count, $time_since, $last_updated_by );
 
 		// Topic has no replies
 		} elseif ( ! empty( $voice_count ) && ! empty( $reply_count ) ) {
-			$retstr = sprintf( esc_html__( 'This topic contains %1$s and has %2$s.', 'bbpress' ), $voice_count, $reply_count );
+			$retstr = sprintf( esc_html__( 'This topic has %1$s and %2$s.', 'bbpress' ), $voice_count, $reply_count );
 
 		// Topic has no replies and no voices
@@ -4112,5 +4122,5 @@
 
 /**
- * Allow topic rows to have adminstrative actions
+ * Allow topic rows to have administrative actions
  *
  * @since 2.1.0 bbPress (r3653)
