diff --git src/bp-core/classes/class-bp-attachment-avatar.php src/bp-core/classes/class-bp-attachment-avatar.php
index 980b1bc..686e55e 100644
--- src/bp-core/classes/class-bp-attachment-avatar.php
+++ src/bp-core/classes/class-bp-attachment-avatar.php
@@ -137,6 +137,28 @@ class BP_Attachment_Avatar extends BP_Attachment {
 			if ( ! is_wp_error( $editor ) ) {
 				$editor->set_quality( 100 );
 
+				// Get image metadata
+				add_filter( 'wp_read_image_metadata', array( __CLASS__, '_metadata_get_orientation' ), 10, 3 );
+				$meta = wp_read_image_metadata( $file );
+				remove_filter( 'wp_read_image_metadata', array( __CLASS__, '_metadata_get_orientation' ), 10, 3 );
+
+				// Rotate the image for mobile devices
+				if ( wp_is_mobile() ) {
+					if( ! empty( $meta['Orientation'] ) ) {
+						switch( $meta['Orientation'] ) {
+							case 8:
+								$editor->rotate( 90 );
+								break;
+							case 3:
+								$editor->rotate( 180 );
+								break;
+							case 6:
+								$editor->rotate( -90 );
+								break;
+						}
+					}
+				}
+
 				$resized = $editor->resize( bp_core_avatar_original_max_width(), bp_core_avatar_original_max_width(), false );
 				if ( ! is_wp_error( $resized ) ) {
 					$thumb = $editor->save( $editor->generate_filename() );
@@ -418,4 +440,34 @@ class BP_Attachment_Avatar extends BP_Attachment {
 		 */
 		return apply_filters( 'bp_attachment_avatar_script_data', $script_data, $object );
 	}
+
+	/**
+	 * Get and set the orientation for an image.
+	 *
+	 * This filter is used primarily to support WP 3.8.0 - 3.9.x.
+	 *
+	 * @todo Temporary and subject to removal after BuddyPress supports WP 4.0+.
+	 *
+	 * @param  array  $meta            Image meta data.
+	 * @param  string $file            Path to image file.
+	 * @param  int    $sourceImageType Type of image.
+	 * @return array
+	 */
+	public static function _metadata_get_orientation( $meta = array(), $file = '', $sourceImageType = 0 ) {
+		// WP 4.0+ is good!
+		if ( true === version_compare( bp_get_major_wp_version(), '4.0', '>=' ) ) {
+			return $meta;
+		}
+
+		// The things we do for backward compatibility...
+		if ( is_callable( 'exif_read_data' ) && in_array( $sourceImageType, apply_filters( 'wp_read_image_metadata_types', array( IMAGETYPE_JPEG, IMAGETYPE_TIFF_II, IMAGETYPE_TIFF_MM ) ) ) ) {
+			$exif = @exif_read_data( $file );
+
+			if ( ! empty( $exif['Orientation'] ) ) {
+				$meta['orientation'] = $exif['Orientation'];
+			}
+		}
+
+		return $meta;
+	}
 }
