Index: bp-forums.php
===================================================================
--- bp-forums.php	(revision 3275)
+++ bp-forums.php	(working copy)
@@ -375,6 +375,8 @@
 
 	$defaults = array(
 		'topic_id' => false,
+		'include' => false, // Comma-separated string of post IDs to include
+		'exclude' => false, // Comma-separated string of post IDs to exclude
 		'page' => 1,
 		'per_page' => 15,
 		'order' => 'ASC'
@@ -382,6 +384,21 @@
 
 	$args = wp_parse_args( $args, $defaults );
 
+	if ( $args['include'] ) {
+		$args['post_id'] = $args['include'];
+		unset( $args['include'] );
+	}
+	
+	// Format exclude IDs in the bbPress fashion
+	if ( $args['exclude'] ) {
+		$exclude = '-' . str_replace( ',', ',-', $args['exclude'] );
+		$exclude = str_replace( '--', '-', $exclude );
+		if ( $args['post_id'] )
+			$args['post_id'] = (string) $args['post_id'] . ",$exclude";
+		else
+			$args['post_id'] = $exclude;
+	}
+
 	$query = new BB_Query( 'post', $args, 'get_thread' );
 	return bp_forums_get_post_extras( $query->results );
 }
Index: bp-forums/bp-forums-templatetags.php
===================================================================
--- bp-forums/bp-forums-templatetags.php	(revision 3275)
+++ bp-forums/bp-forums-templatetags.php	(working copy)
@@ -711,17 +711,20 @@
 	var $sort_by;
 	var $order;
 
-	function BP_Forums_Template_Topic( $topic_id, $per_page, $max ) {
+	function BP_Forums_Template_Topic( $topic_id, $per_page, $max, $include, $exclude ) {
 		global $bp, $current_user, $forum_template;
 
 		$this->pag_page        = isset( $_REQUEST['topic_page'] ) ? intval( $_REQUEST['topic_page'] ) : 1;
 		$this->pag_num         = isset( $_REQUEST['num'] ) ? intval( $_REQUEST['num'] ) : $per_page;
 
+		$this->include = $include;
+		$this->exclude = $exclude;
+
 		$this->order           = $order;
 		$this->topic_id        = $topic_id;
 		$forum_template->topic = (object) bp_forums_get_topic_details( $this->topic_id );
 
-		$this->posts           = bp_forums_get_topic_posts( array( 'topic_id' => $this->topic_id, 'page' => $this->pag_page, 'per_page' => $this->pag_num, 'order' => $this->order ) );
+		$this->posts           = bp_forums_get_topic_posts( array( 'topic_id' => $this->topic_id, 'include' => $this->include, 'exclude' => $this->exclude, 'page' => $this->pag_page, 'per_page' => $this->pag_num, 'order' => $this->order ) );
 
 		if ( !$this->posts ) {
 			$this->post_count = 0;
@@ -812,6 +815,8 @@
 
 	$defaults = array(
 		'topic_id' => false,
+		'include' => false, // Comma-separated list of post IDs to include
+		'exclude' => false, // Comma-separated list of post IDs to exclude
 		'per_page' => 15,
 		'max' => false
 	);
@@ -823,7 +828,7 @@
 		$topic_id = bp_forums_get_topic_id_from_slug( $bp->action_variables[1] );
 
 	if ( is_numeric( $topic_id ) )
-		$topic_template = new BP_Forums_Template_Topic( $topic_id, $per_page, $max );
+		$topic_template = new BP_Forums_Template_Topic( $topic_id, $per_page, $max, $include, $exclude );
 	else
 		return false;
 
