diff --git src/bp-messages/actions/compose.php src/bp-messages/actions/compose.php
index 01701d1fc..0c39ed2af 100644
--- src/bp-messages/actions/compose.php
+++ src/bp-messages/actions/compose.php
@@ -29,9 +29,24 @@ function bp_messages_action_create_message() {
 	$feedback    = '';
 	$success     = false;
 
-	// Missing subject or content.
-	if ( empty( $_POST['subject'] ) || empty( $_POST['content'] ) ) {
-		$success  = false;
+	// Setup the link to the logged-in user's messages.
+	$path_chunks = array( bp_get_messages_slug() );
+
+	// Missing usernames or friend's name
+	if ( empty( $_POST['send_to_usernames'] ) ) {
+		$success = false;
+
+		$path_chunks[] = 'compose';
+
+		$feedback = __( 'Your message was not sent. Please enter a username or Friend\'s name.', 'buddypress' );
+
+		$redirect_to = bp_loggedin_user_url( bp_members_get_path_chunks( $path_chunks ) );
+
+		// Missing subject or content.
+	} elseif ( empty( $_POST['subject'] ) || empty( $_POST['content'] ) ) {
+		$success = false;
+
+		$path_chunks[] = 'compose';
 
 		if ( empty( $_POST['subject'] ) ) {
 			$feedback = __( 'Your message was not sent. Please enter a subject line.', 'buddypress' );
@@ -39,11 +54,16 @@ function bp_messages_action_create_message() {
 			$feedback = __( 'Your message was not sent. Please enter some content.', 'buddypress' );
 		}
 
-	// Subject and content present.
-	} else {
+		$redirect_to = add_query_arg(
+			array(
+				'r'        => $_POST['send_to_usernames'],
+				'_wpnonce' => wp_create_nonce( 'action' ),
+			),
+			bp_loggedin_user_url( bp_members_get_path_chunks( $path_chunks ) )
+		);
 
-		// Setup the link to the logged-in user's messages.
-		$path_chunks = array( bp_get_messages_slug() );
+		// Subject and content present.
+	} else {
 
 		// Site-wide notice.
 		if ( isset( $_POST['send-notice'] ) ) {
@@ -55,13 +75,13 @@ function bp_messages_action_create_message() {
 				$path_chunks[] = 'notices';
 				$redirect_to   = bp_loggedin_user_url( bp_members_get_path_chunks( $path_chunks ) );
 
-			// Notice could not be sent.
+				// Notice could not be sent.
 			} else {
 				$success  = false;
 				$feedback = __( 'Notice was not created. Please try again.', 'buddypress' );
 			}
 
-		// Private conversation.
+			// Private conversation.
 		} else {
 
 			// Filter recipients into the format we need - array( 'username/userid', 'username/userid' ).
@@ -79,12 +99,14 @@ function bp_messages_action_create_message() {
 			$recipients = apply_filters( 'bp_messages_recipients', $recipients );
 
 			// Attempt to send the message.
-			$send = messages_new_message( array(
-				'recipients' => $recipients,
-				'subject'    => $_POST['subject'],
-				'content'    => $_POST['content'],
-				'error_type' => 'wp_error',
-			) );
+			$send = messages_new_message(
+				array(
+					'recipients' => $recipients,
+					'subject'    => $_POST['subject'],
+					'content'    => $_POST['content'],
+					'error_type' => 'wp_error',
+				)
+			);
 
 			// Send the message and redirect to it.
 			if ( true === is_int( $send ) ) {
@@ -94,7 +116,7 @@ function bp_messages_action_create_message() {
 				$path_chunks[] = array( $send );
 				$redirect_to   = bp_loggedin_user_url( bp_members_get_path_chunks( $path_chunks ) );
 
-			// Message could not be sent.
+				// Message could not be sent.
 			} else {
 				$success  = false;
 				$feedback = $send->get_error_message();
