diff --git src/bp-xprofile/classes/class-bp-xprofile-field-type.php src/bp-xprofile/classes/class-bp-xprofile-field-type.php
index ccfb2c6..0c8ba43 100644
--- src/bp-xprofile/classes/class-bp-xprofile-field-type.php
+++ src/bp-xprofile/classes/class-bp-xprofile-field-type.php
@@ -206,10 +206,13 @@ abstract class BP_XProfile_Field_Type {
 			$validated = true;
 		}
 
-		// If there's a whitelist set, also check the $value.
+		// If there's a whitelist set, make sure that each value is a whitelisted value.
 		if ( ( true === $validated ) && ! empty( $values ) && ! empty( $this->validation_whitelist ) ) {
 			foreach ( (array) $values as $value ) {
-				$validated = in_array( $value, $this->validation_whitelist, true );
+				if ( ! in_array( $value, $this->validation_whitelist, true ) ) {
+					$validated = false;
+					break;
+				}
 			}
 		}
 
diff --git tests/phpunit/testcases/xprofile/class-bp-xprofile-field-type.php tests/phpunit/testcases/xprofile/class-bp-xprofile-field-type.php
index 2587d90..6fa2644 100644
--- tests/phpunit/testcases/xprofile/class-bp-xprofile-field-type.php
+++ tests/phpunit/testcases/xprofile/class-bp-xprofile-field-type.php
@@ -38,7 +38,7 @@ class BP_Tests_XProfile_Field_Type extends BP_UnitTestCase {
 
 		$this->assertTrue( $field->is_valid( array( 'cheese', 'pepporoni' ) ) );
 		$this->assertTrue( $field->is_valid( array( 'cheese' ) ) );
-		$this->assertFalse( $field->is_valid( array( 'cheese', 'pepporoni', 'pinapple' ) ) );
+		$this->assertFalse( $field->is_valid( array( 'cheese', 'pinapple', 'pepporoni' ) ) );
 		$this->assertFalse( $field->is_valid( array( 'pinapple' ) ) );
 	}
 
@@ -104,7 +104,7 @@ class BP_Tests_XProfile_Field_Type extends BP_UnitTestCase {
 
 		$this->assertTrue( $field->is_valid( array( 123 ) ) );
 		$this->assertTrue( $field->is_valid( array( 456 ) ) );
-		$this->assertFalse( $field->is_valid( array( 123, 456, 789 ) ) );
+		$this->assertFalse( $field->is_valid( array( 789, 456, 123 ) ) );
 		$this->assertFalse( $field->is_valid( array( 789 ) ) );
 	}
 
@@ -114,7 +114,7 @@ class BP_Tests_XProfile_Field_Type extends BP_UnitTestCase {
 
 		$this->assertTrue( $field->is_valid( array( 'cheese', 'pepporoni' ) ) );
 		$this->assertTrue( $field->is_valid( array( 'cheese' ) ) );
-		$this->assertFalse( $field->is_valid( array( 'cheese', 'pepporoni', 'pinapple' ) ) );
+		$this->assertFalse( $field->is_valid( array(  'pinapple', 'cheese', 'pepporoni' ) ) );
 		$this->assertFalse( $field->is_valid( array( 'pinapple' ) ) );
 		$this->assertFalse( $field->is_valid( '' ) );
 	}
@@ -132,7 +132,7 @@ class BP_Tests_XProfile_Field_Type extends BP_UnitTestCase {
 
 		$this->assertTrue( $field->is_valid( array( 'cheese', 'pepporoni' ) ) );
 		$this->assertTrue( $field->is_valid( array( 'cheese' ) ) );
-		$this->assertFalse( $field->is_valid( array( 'cheese', 'pepporoni', 'pinapple' ) ) );
+		$this->assertFalse( $field->is_valid( array( 'pepporoni', 'cheese', 'pinapple' ) ) );
 		$this->assertFalse( $field->is_valid( array( 'pinapple' ) ) );
 		$this->assertFalse( $field->is_valid( '' ) );
 	}
