Index: /trunk/src/bp-groups/bp-groups-loader.php
===================================================================
--- /trunk/src/bp-groups/bp-groups-loader.php	(revision 10157)
+++ /trunk/src/bp-groups/bp-groups-loader.php	(revision 10158)
@@ -314,4 +314,11 @@
 		}
 
+		if ( bp_group_use_cover_image_header() ) {
+			$this->group_creation_steps['group-cover-image'] = array(
+				'name'     => _x( 'Cover Image', 'Group screen nav', 'buddypress' ),
+				'position' => 25
+			);
+		}
+
 		// If friends component is active, add invitations
 		if ( bp_is_active( 'friends' ) ) {
@@ -592,4 +599,12 @@
 				}
 
+				if ( bp_group_use_cover_image_header() ) {
+					$sub_nav[] = array_merge( array(
+						'name'     => __( 'Cover Image', 'buddypress' ),
+						'slug'     => 'group-cover-image',
+						'position' => 25,
+					), $default_params );
+				}
+
 				$sub_nav[] = array_merge( array(
 					'name'     => __( 'Members', 'buddypress' ),
Index: /trunk/src/bp-groups/bp-groups-screens.php
===================================================================
--- /trunk/src/bp-groups/bp-groups-screens.php	(revision 10157)
+++ /trunk/src/bp-groups/bp-groups-screens.php	(revision 10158)
@@ -988,4 +988,39 @@
 }
 add_action( 'bp_screens', 'groups_screen_group_admin_avatar' );
+
+/**
+ * Handle the display of a group's Change cover image page.
+ *
+ * @since 2.4.0
+ */
+function groups_screen_group_admin_cover_image() {
+	if ( 'group-cover-image' != bp_get_group_current_admin_tab() ) {
+		return false;
+	}
+
+	// If the logged-in user doesn't have permission or if cover image uploads are disabled, then stop here
+	if ( ! bp_is_item_admin() || ! bp_group_use_cover_image_header() ) {
+		return false;
+	}
+
+	/**
+	 * Fires before the loading of the group Change cover image page template.
+	 *
+	 * @since 2.4.0
+	 *
+	 * @param int $id ID of the group that is being displayed.
+	 */
+	do_action( 'groups_screen_group_admin_cover_image', bp_get_current_group_id() );
+
+	/**
+	 * Filters the template to load for a group's Change cover image page.
+	 *
+	 * @since 2.4.0
+	 *
+	 * @param string $value Path to a group's Change cover image template.
+	 */
+	bp_core_load_template( apply_filters( 'groups_template_group_admin_cover_image', 'groups/single/home' ) );
+}
+add_action( 'bp_screens', 'groups_screen_group_admin_cover_image' );
 
 /**
Index: /trunk/src/bp-groups/bp-groups-template.php
===================================================================
--- /trunk/src/bp-groups/bp-groups-template.php	(revision 10157)
+++ /trunk/src/bp-groups/bp-groups-template.php	(revision 10158)
@@ -1005,4 +1005,18 @@
 	}
 
+/** Group cover image *********************************************************/
+
+/**
+ * Should we use the group's cover image header
+ *
+ * @since 2.4.0
+ *
+ * @return bool True if the displayed user has a cover image,
+ *              False otherwise
+ */
+function bp_group_use_cover_image_header() {
+	return (bool) bp_is_active( 'groups', 'cover_image' ) && ! bp_disable_group_cover_image_uploads() && bp_attachments_is_wp_version_supported();
+}
+
 /**
  * Output the 'last active' string for the current group in the loop.
Index: /trunk/src/bp-templates/bp-legacy/buddypress/groups/create.php
===================================================================
--- /trunk/src/bp-templates/bp-legacy/buddypress/groups/create.php	(revision 10157)
+++ /trunk/src/bp-templates/bp-legacy/buddypress/groups/create.php	(revision 10158)
@@ -253,5 +253,36 @@
 			<?php endif; ?>
 
-			<?php /* Group creation step 4: Invite friends to group */ ?>
+			<?php /* Group creation step 4: Cover image */ ?>
+			<?php if ( bp_is_group_creation_step( 'group-cover-image' ) ) : ?>
+
+				<?php
+
+				/**
+				 * Fires before the display of the group cover image creation step.
+				 *
+				 * @since 2.4.0
+				 */
+				do_action( 'bp_before_group_cover_image_creation_step' ); ?>
+
+				<div id="header-cover-image"></div>
+
+				<p><?php _e( 'The Cover Image will be used to customize the header of your group.', 'buddypress' ); ?></p>
+
+				<?php bp_attachments_get_template_part( 'cover-images/index' ); ?>
+
+				<?php
+
+				/**
+				 * Fires after the display of the group cover image creation step.
+				 *
+				 * @since 2.4.0
+				 */
+				do_action( 'bp_after_group_cover_image_creation_step' ); ?>
+
+				<?php wp_nonce_field( 'groups_create_save_group-cover-image' ); ?>
+
+			<?php endif; ?>
+
+			<?php /* Group creation step 5: Invite friends to group */ ?>
 			<?php if ( bp_is_group_creation_step( 'group-invites' ) ) : ?>
 
Index: /trunk/src/bp-templates/bp-legacy/buddypress/groups/single/admin.php
===================================================================
--- /trunk/src/bp-templates/bp-legacy/buddypress/groups/single/admin.php	(revision 10157)
+++ /trunk/src/bp-templates/bp-legacy/buddypress/groups/single/admin.php	(revision 10158)
@@ -205,4 +205,33 @@
 
 	<?php endif; ?>
+
+<?php endif; ?>
+
+<?php /* Group Cover image Settings */ ?>
+<?php if ( bp_is_group_admin_screen( 'group-cover-image' ) ) : ?>
+
+	<h4><?php _e( 'Change Cover Image', 'buddypress' ); ?></h4>
+
+	<?php
+
+	/**
+	 * Fires before the display of profile cover image upload content.
+	 *
+	 * @since 2.4.0
+	 */
+	do_action( 'bp_before_group_settings_cover_image' ); ?>
+
+	<p><?php _e( 'The Cover Image will be used to customize the header of your group.', 'buddypress' ); ?></p>
+
+	<?php bp_attachments_get_template_part( 'cover-images/index' ); ?>
+
+	<?php
+
+	/**
+	 * Fires after the display of group cover image upload content.
+	 *
+	 * @since 2.4.0
+	 */
+	do_action( 'bp_after_group_settings_cover_image' ); ?>
 
 <?php endif; ?>
Index: /trunk/src/bp-templates/bp-legacy/buddypress/groups/single/cover-image-header.php
===================================================================
--- /trunk/src/bp-templates/bp-legacy/buddypress/groups/single/cover-image-header.php	(revision 10158)
+++ /trunk/src/bp-templates/bp-legacy/buddypress/groups/single/cover-image-header.php	(revision 10158)
@@ -0,0 +1,129 @@
+<?php
+/**
+ * BuddyPress - Groups Cover Image Header
+ *
+ * @package BuddyPress
+ * @subpackage bp-legacy
+ */
+
+?>
+
+<?php
+
+/**
+ * Fires before the display of a group's header.
+ *
+ * @since 1.2.0
+ */
+do_action( 'bp_before_group_header' ); ?>
+
+<a id="header-cover-image" href="<?php bp_group_permalink(); ?>"></a>
+
+<div id="item-header-cover-image">
+	<?php if ( ! bp_disable_group_avatar_uploads() ) : ?>
+		<div id="item-header-avatar">
+			<a href="<?php bp_group_permalink(); ?>" title="<?php bp_group_name(); ?>">
+
+				<?php bp_group_avatar(); ?>
+
+			</a>
+		</div><!-- #item-header-avatar -->
+	<?php endif; ?>
+
+	<div id="item-header-content">
+
+		<div id="item-buttons">
+
+			<?php
+
+			/**
+			 * Fires in the group header actions section.
+			 *
+			 * @since 1.2.6
+			 */
+			do_action( 'bp_group_header_actions' ); ?>
+
+		</div><!-- #item-buttons -->
+
+		<?php
+
+		/**
+		 * Fires before the display of the group's header meta.
+		 *
+		 * @since 1.2.0
+		 */
+		do_action( 'bp_before_group_header_meta' ); ?>
+
+		<div id="item-meta">
+
+			<?php
+
+			/**
+			 * Fires after the group header actions section.
+			 *
+			 * @since 1.2.0
+			 */
+			do_action( 'bp_group_header_meta' ); ?>
+
+			<span class="highlight"><?php bp_group_type(); ?></span>
+			<span class="activity"><?php printf( __( 'active %s', 'buddypress' ), bp_get_group_last_active() ); ?></span>
+
+			<?php bp_group_description(); ?>
+
+		</div>
+	</div><!-- #item-header-content -->
+
+	<div id="item-actions">
+
+		<?php if ( bp_group_is_visible() ) : ?>
+
+			<h3><?php _e( 'Group Admins', 'buddypress' ); ?></h3>
+
+			<?php bp_group_list_admins();
+
+			/**
+			 * Fires after the display of the group's administrators.
+			 *
+			 * @since 1.1.0
+			 */
+			do_action( 'bp_after_group_menu_admins' );
+
+			if ( bp_group_has_moderators() ) :
+
+				/**
+				 * Fires before the display of the group's moderators, if there are any.
+				 *
+				 * @since 1.1.0
+				 */
+				do_action( 'bp_before_group_menu_mods' ); ?>
+
+				<h3><?php _e( 'Group Mods' , 'buddypress' ); ?></h3>
+
+				<?php bp_group_list_mods();
+
+				/**
+				 * Fires after the display of the group's moderators, if there are any.
+				 *
+				 * @since 1.1.0
+				 */
+				do_action( 'bp_after_group_menu_mods' );
+
+			endif;
+
+		endif; ?>
+
+	</div><!-- #item-actions -->
+
+</div><!-- #item-header-cover-image -->
+
+<?php
+
+/**
+ * Fires after the display of a group's header.
+ *
+ * @since 1.2.0
+ */
+do_action( 'bp_after_group_header' );
+
+/** This action is documented in bp-templates/bp-legacy/buddypress/activity/index.php */
+do_action( 'template_notices' ); ?>
Index: /trunk/src/bp-templates/bp-legacy/buddypress/groups/single/home.php
===================================================================
--- /trunk/src/bp-templates/bp-legacy/buddypress/groups/single/home.php	(revision 10157)
+++ /trunk/src/bp-templates/bp-legacy/buddypress/groups/single/home.php	(revision 10158)
@@ -14,5 +14,14 @@
 	<div id="item-header" role="complementary">
 
-		<?php bp_get_template_part( 'groups/single/group-header' ); ?>
+		<?php
+		/**
+		 * If the cover image feature is enabled, use a specific header
+		 */
+		if ( bp_group_use_cover_image_header() ) :
+			bp_get_template_part( 'groups/single/cover-image-header' );
+		else :
+			bp_get_template_part( 'groups/single/group-header' );
+		endif;
+		?>
 
 	</div><!-- #item-header -->
