Index: bb-admin/options-reading.php
===================================================================
--- bb-admin/options-reading.php	(revision 2447)
+++ bb-admin/options-reading.php	(working copy)
@@ -3,22 +3,26 @@
 require_once( 'admin.php' );
 
 if ( 'post' == strtolower( $_SERVER['REQUEST_METHOD'] ) && $_POST['action'] == 'update') {
-	
+
 	bb_check_admin_referer( 'options-reading-update' );
-	
+
 	foreach ( (array) $_POST as $option => $value ) {
 		if ( !in_array( $option, array('_wpnonce', '_wp_http_referer', 'action', 'submit') ) ) {
-			$option = trim( $option );
-			$value = is_array( $value ) ? $value : trim( $value );
-			$value = stripslashes_deep( $value );
-			if ( $value ) {
-				bb_update_option( $option, $value );
+			if ( $option == 'post_author_layout' ) {
+				bb_update_option( 'bb_post_author_layout', array_map( 'urldecode', explode( '|', stripslashes( $value ) ) ) );
 			} else {
-				bb_delete_option( $option );
+				$option = trim( $option );
+				$value = is_array( $value ) ? $value : trim( $value );
+				$value = stripslashes_deep( $value );
+				if ( $value ) {
+					bb_update_option( $option, $value );
+				} else {
+					bb_delete_option( $option );
+				}
 			}
 		}
 	}
-	
+
 	$goback = add_query_arg('updated', 'true', wp_get_referer());
 	bb_safe_redirect($goback);
 	exit;
@@ -44,6 +48,13 @@
 	)
 );
 
+function bb_admin_reading_post_author_filter() {
+	return bb_get_current_user_info( 'ID' );
+}
+add_filter( 'get_post_author_id', 'bb_admin_reading_post_author_filter' );
+
+wp_enqueue_script( 'interface' );
+
 $bb_admin_body_class = ' bb-admin-settings';
 
 bb_get_admin_header();
@@ -63,6 +74,59 @@
 }
 ?>
 	</fieldset>
+	<fieldset id="post-author-layout" style="display: none;">
+		<div>
+			<div class="label">
+				<?php _e( 'Post author layout' ); ?>
+			</div>
+
+			<div class="inputs">
+				<ul id="post-author-layout-active" class="post-author-layout">
+<?php
+foreach ( bb_get_active_post_author_layout_sections() as $section ) {
+	bb_post_author_layout_section( $section, array(
+		'before' => "\n\t\t\t\t\t<li class='post-author-layout-section' id='$section'>",
+		'after'  => '</li>'
+	) );
+}
+?>
+
+				</ul>
+				<ul id="post-author-layout-inactive" class="post-author-layout">
+<?php
+foreach ( bb_get_inactive_post_author_layout_sections() as $section ) {
+	bb_post_author_layout_section( $section, array(
+		'before' => "\n\t\t\t\t\t<li class='post-author-layout-section' id='$section'>",
+		'after'  => '</li>'
+	) );
+}
+?>
+
+				</ul>
+
+				<p><?php _e( 'Arrange the elements you want next to each post by clicking and dragging. Elements in the left column will be shown.' ); ?></p>
+
+				<input type="hidden" id="post_author_layout" name="post_author_layout" value="<?php
+echo implode( '|', array_map( 'urlencode', bb_get_active_post_author_layout_sections() ) );
+?>" />
+			</div>
+		</div>
+<script type="text/javascript">
+jQuery(function($){
+	$('#post-author-layout').show();
+	$('.post-author-layout').Sortable({
+		accept: 'post-author-layout-section',
+		onStop: function(){
+			$('#post_author_layout').val($.map($.SortSerialize('post-author-layout-active').o['post-author-layout-active'], encodeURIComponent).join('|'));
+		}
+	}).find('* *').click(function(e){
+		e.stopPropagation();
+		e.preventDefault();
+		return false;
+	});
+});
+</script>
+	</fieldset>
 	<fieldset class="submit">
 		<?php bb_nonce_field( 'options-reading-update' ); ?>
 		<input type="hidden" name="action" value="update" />
Index: bb-admin/style.css
===================================================================
--- bb-admin/style.css	(revision 2447)
+++ bb-admin/style.css	(working copy)
@@ -1815,11 +1815,37 @@
 }
 
 
+/* Reading Settings */
 
+form.settings .post-author-layout {
+	-moz-border-radius: 6px;
+	-khtml-border-radius: 6px;
+	-webkit-border-radius: 6px;
+	border-radius: 6px;
+	border: 1px solid #aaa;
+	padding: 2px;
+	margin: 0 5px 0 0;
+	float: left;
+	min-height: 100px;
+	width: 100px;
+}
 
+form.settings .post-author-layout li {
+	list-style: none;
+}
 
+#post-author-layout-active {
+	background-color: #fff;
+}
 
+#post-author-layout-inactive {
+	background-color: #ccc;
+	opacity: .75;
+}
 
+.post-author-layout + p {
+	clear: both;
+}
 
 /* Layout classes */
 /*
Index: bb-includes/functions.bb-template.php
===================================================================
--- bb-includes/functions.bb-template.php	(revision 2447)
+++ bb-includes/functions.bb-template.php	(working copy)
@@ -3584,3 +3584,62 @@
 		}
 	}
 }
+
+function bb_get_active_post_author_layout_sections() {
+	if ( is_array( $layout = bb_get_option( 'bb_post_author_layout' ) ) )
+		return array_intersect( $layout, bb_get_post_author_layout_sections() );
+	return array( 'post_author_avatar_link', 'post_author_link', 'post_author_title_link' );
+}
+
+function bb_get_inactive_post_author_layout_sections() {
+	if ( !is_array( $layout = bb_get_option( 'bb_post_author_layout' ) ) )
+		$layout = array( 'post_author_avatar_link', 'post_author_link', 'post_author_title_link' );
+	return array_diff( bb_get_post_author_layout_sections(), $layout );
+}
+
+function bb_get_post_author_layout_sections() {
+	return apply_filters( 'bb_post_author_layout_sections', array(
+		'post_author_avatar_link',
+		'post_author_avatar',
+		'post_author_link',
+		'post_author',
+		'post_author_title_link',
+		'post_author_title'
+	) );
+}
+
+function bb_post_author_layout_section( $section, $args = '' ) {
+	extract( wp_parse_args( $args, array(
+		'before' => '',
+		'after'  => '',
+		'args'   => array()
+	) ) );
+
+	if ( $before ) {
+		ob_start();
+	}
+	$result = false !== call_user_func_array( $section, $args );
+	if ( $before ) {
+		$data = ob_get_clean();
+		if ( $result )
+			echo $before;
+		echo $data;
+	}
+	if ( $result )
+		echo $after;
+}
+
+function bb_post_author_layout( $args = array() ) {
+	$defaults = array(
+		'default' => array( 'post_author_avatar_link', 'post_author_link', 'post_author_title_link' )
+	);
+	$args = wp_parse_args( $args, $defaults );
+
+	if ( !$layout = bb_get_option( 'bb_post_author_layout' ) ) {
+		$layout = $args['default'];
+	}
+
+	foreach ( $layout as $section ) {
+		bb_post_author_layout_section( $section, array( 'after' => '<br/>' ) );
+	}
+}
\ No newline at end of file
Index: bb-templates/kakumei/post.php
===================================================================
--- bb-templates/kakumei/post.php	(revision 2447)
+++ bb-templates/kakumei/post.php	(working copy)
@@ -1,10 +1,14 @@
 		<div id="position-<?php post_position(); ?>">
 			<div class="threadauthor">
+<?php if ( function_exists( 'bb_post_author_layout' ) ) {
+	bb_post_author_layout();
+} else { ?>
 				<?php post_author_avatar_link(); ?>
 				<p>
 					<strong><?php post_author_link(); ?></strong><br />
 					<small><?php post_author_title_link(); ?></small>
 				</p>
+<?php } ?>
 			</div>
 			<div class="threadpost">
 				<div class="post"><?php post_text(); ?></div>
