--- /buddypress/bp-groups-templatetags.php	Tue Dec 07 18:29:05 2010
+++ /buddypress/bp-groups/bp-groups-templatetags.php	Tue Dec 07 18:27:54 2010
@@ -1020,6 +1020,43 @@
 	return apply_filters( 'bp_group_is_member', $is_member );
 }
 
+/**
+ * bp_group_is_member_banned()
+ *
+ * Checks if a user is banned from a group.
+ *
+ * @uses is_super_admin Check if current user is super admin
+ * @uses apply_filters Creates bp_group_is_member_banned and passes $is_banned
+ * @usedby groups/single/forum/forum.php, groups/single/forum/topic.php to determine post form visibility
+ * @global array $bp BuddyPress Master global
+ * @global object $groups_template Current Group (usually in template loop)
+ * @param object $group Group to check if user is banned from the group
+ * @return bool If user is banned from the group or not
+ */
+function bp_group_is_member_banned( $group = false, $user_id = false ) {
+	global $bp, $groups_template;
+
+	// Site admins always have access
+	if ( is_super_admin() )
+		return false;
+
+	// Load group if none passed
+	if ( !$group )
+		$group =& $groups_template->group;
+
+	// Pass logged-in user ID if none passed
+	if ( !$user_id )
+		$user_id = $bp->loggedin_user->id;
+
+	if ( groups_is_user_banned( $user_id, $group->id ) )
+		$is_banned = true;
+	else
+		$is_banned = false;
+
+	// Return
+	return apply_filters( 'bp_group_is_member_banned', $is_banned );
+}
+
 function bp_group_accept_invite_link() {
 	echo bp_get_group_accept_invite_link();
 }
@@ -1096,7 +1133,7 @@
 }
 
 function bp_group_new_topic_button() {
-	if ( bp_is_group_forum() && is_user_logged_in() && !bp_is_group_forum_topic() ) {
+	if ( bp_is_group_forum() && is_user_logged_in() && !bp_is_group_forum_topic() && !bp_group_is_member_banned() ) {
 		bp_button( array (
 			'id'                => 'new_topic',
 			'component'         => 'groups',
@@ -1210,7 +1247,10 @@
 		}
 
 		// Filter and return the HTML button
-		return bp_get_button( apply_filters( 'bp_get_group_join_button', $button ) );
+		if ( !bp_group_is_member_banned() )
+			return bp_get_button( apply_filters( 'bp_get_group_join_button', $button ) );
+
+		return false;
 	}
 
 function bp_group_status_message( $group = false ) {
--- /buddypress/bp-themes/bp-default/groups/single/forum.php	Tue Dec 07 18:30:57 2010
+++ /buddypress/bp-themes/bp-default/groups/single/forum.php	Tue Dec 07 18:20:07 2010
@@ -18,7 +18,7 @@
 
 <?php if ( !bp_is_group_forum_topic_edit() && !bp_is_group_forum_topic() ) : ?>
 
-	<?php if ( ( is_user_logged_in() && 'public' == bp_get_group_status() ) || bp_group_is_member() ) : ?>
+	<?php if ( ( is_user_logged_in() && 'public' == bp_get_group_status() && !bp_group_is_member_banned() ) || bp_group_is_member() ) : ?>
 
 		<form action="" method="post" id="forum-topic-form" class="standard-form">
 			<div id="post-new-topic">
--- /buddypress/bp-themes/bp-default/groups/single/forum/topic.php	Tue Dec 07 18:31:02 2010
+++ /buddypress/bp-themes/bp-default/groups/single/forum/topic.php	Tue Dec 07 18:18:12 2010
@@ -74,7 +74,7 @@
 
 		</div>
 
-		<?php if ( ( is_user_logged_in() && 'public' == bp_get_group_status() ) || bp_group_is_member() ) : ?>
+		<?php if ( ( is_user_logged_in() && 'public' == bp_get_group_status() && !bp_group_is_member_banned() ) || bp_group_is_member() ) : ?>
 
 			<?php if ( bp_get_the_topic_is_last_page() ) : ?>
 
