diff --git a/conditional_fields.api.inc b/conditional_fields.api.inc
index ea5f492..661752c 100644
--- a/conditional_fields.api.inc
+++ b/conditional_fields.api.inc
@@ -424,11 +424,13 @@ function conditional_fields_evaluate_dependencies($dependent, $form, $form_state
       $values = $values[$dependee_parent[$dependee]['#language']];
     }
 
-    if ($grouping) {
-      $evaluated_dependees[reset($dependent['field_parents'])][$dependency['options']['grouping']][] = conditional_fields_evaluate_dependency('edit', $values, $dependency['options']);
-    }
-    else {
-      $evaluated_dependees[reset($dependent['field_parents'])][$dependency['options']['grouping']][$dependency['options']['state']] = conditional_fields_evaluate_dependency('edit', $values, $dependency['options']);
+    if(is_array($dependent['field_parents']) && count($dependent['field_parents']) > 0) {
+      if ($grouping) {
+        $evaluated_dependees[reset($dependent['field_parents'])][$dependency['options']['grouping']][] = conditional_fields_evaluate_dependency('edit', $values, $dependency['options']);
+      }
+      else {
+        $evaluated_dependees[reset($dependent['field_parents'])][$dependency['options']['grouping']][$dependency['options']['state']] = conditional_fields_evaluate_dependency('edit', $values, $dependency['options']);
+      }
     }
   }
 
@@ -514,7 +516,11 @@ function conditional_fields_form_validate($form, FormStateInterface &$form_state
 
     // Reinstate remaining errors.
     foreach ($errors as $name => $error) {
-      $form_state->setErrorByName($name, $error);
+      if(!isset($form[$name]) || !is_array($form[$name])) {
+        continue;
+      }
+      $form_state->setErrorByName($form[$name], $error);
+
       // form_set_error() calls drupal_set_message(), so we have to filter out
       // these from the messages to avoid duplicates.
       $removed_messages[] = $error;
@@ -672,7 +678,9 @@ function conditional_fields_evaluate_dependency($context, $values, $options) {
   }
 
   if (!empty($options['values']) && is_string($options['values'])) {
-    $options['values'] = explode("\r\n", $options['values']);
+    $options['values'] = preg_split('/\R/', $options['values']);
+    if(!empty($values_array) && end($values_array) == "")
+      array_pop($values_array);
   }
 
   switch ($options['values_set']) {
diff --git a/src/Plugin/conditional_fields/handler/DefaultStateHandler.php b/src/Plugin/conditional_fields/handler/DefaultStateHandler.php
index 4db391c..fa14b6f 100644
--- a/src/Plugin/conditional_fields/handler/DefaultStateHandler.php
+++ b/src/Plugin/conditional_fields/handler/DefaultStateHandler.php
@@ -32,7 +32,9 @@ class DefaultStateHandler extends ConditionalFieldsHandlerBase {
         break;
 
       case CONDITIONAL_FIELDS_DEPENDENCY_VALUES_AND:
-        $values_array = explode("\r\n", $options['values']);
+        $values_array = preg_split('/\R/', $options['values']);
+        if(!empty($values_array) && end($values_array) == "")
+          array_pop($values_array);
         $values[$options['condition']] = count($values_array) == 1 ? $values_array[0] : $values_array;
         break;
 
@@ -47,7 +49,9 @@ class DefaultStateHandler extends ConditionalFieldsHandlerBase {
         }
 
         // OR, NOT and XOR conditions are obtained with a nested array.
-        $values_array = explode("\r\n", $options['values']);
+        $values_array = preg_split('/\R/', $options['values']);
+        if(!empty($values_array) && end($values_array) == "")
+          array_pop($values_array);
         if (is_array($values_array)) {
           foreach ($values_array as $value) {
             $values[] = array('value' => $value);
diff --git a/src/Plugin/conditional_fields/handler/OptionsButtons.php b/src/Plugin/conditional_fields/handler/OptionsButtons.php
index fe5fe1f..68a80d8 100644
--- a/src/Plugin/conditional_fields/handler/OptionsButtons.php
+++ b/src/Plugin/conditional_fields/handler/OptionsButtons.php
@@ -33,7 +33,9 @@ class OptionsButtons extends ConditionalFieldsHandlerBase {
    */
   protected function radioHandler($field, $field_info, $options) {
     $select_states = [];
-    $values_array = empty($options['values']) ? $options['values'] : explode("\r\n", $options['values']);
+    $values_array = empty($options['values']) ? $options['values'] : preg_split('/\R/', $options['values']);
+    if(!empty($values_array) && end($values_array) == "")
+      array_pop($values_array);
     $state = [];
     switch ($options['values_set']) {
       case CONDITIONAL_FIELDS_DEPENDENCY_VALUES_WIDGET:
@@ -120,7 +122,9 @@ class OptionsButtons extends ConditionalFieldsHandlerBase {
         break;
 
       case CONDITIONAL_FIELDS_DEPENDENCY_VALUES_AND:
-        $values_array = explode("\r\n", $options['values']);
+        $values_array = preg_split('/\R/', $options['values']);
+        if(!empty($values_array) && end($values_array) == "")
+          array_pop($values_array);
         if (is_array($values_array)) {
           foreach ($values_array as $value) {
             $checkboxes_selectors[conditional_fields_field_selector($field[$value])] = ['checked' => TRUE];
@@ -135,7 +139,9 @@ class OptionsButtons extends ConditionalFieldsHandlerBase {
         $checkboxes_selectors[] = 'xor';
       case CONDITIONAL_FIELDS_DEPENDENCY_VALUES_OR:
       case CONDITIONAL_FIELDS_DEPENDENCY_VALUES_NOT:
-        $values_array = explode("\r\n", $options['values']);
+        $values_array = preg_split('/\R/', $options['values']);
+        if(!empty($values_array) && end($values_array) == "")
+          array_pop($values_array);
         foreach ($values_array as $value) {
           $checkboxes_selectors[] = [conditional_fields_field_selector($field[$value]) => ['checked' => TRUE]];
         }
diff --git a/src/Plugin/conditional_fields/handler/Select.php b/src/Plugin/conditional_fields/handler/Select.php
index b3cdfd9..ae85309 100644
--- a/src/Plugin/conditional_fields/handler/Select.php
+++ b/src/Plugin/conditional_fields/handler/Select.php
@@ -29,12 +29,13 @@ class Select extends ConditionalFieldsHandlerBase {
         return $this->widgetCase($field, $options);
 
       case CONDITIONAL_FIELDS_DEPENDENCY_VALUES_AND:
-        if (isset($state[$options['state']][$options['selector']]['value'])) {
-          $state[$options['state']][$options['selector']]['value'] = (array) $state[$options['state']][$options['selector']]['value'];
-        }
-        else {
-          $state[$options['state']][$options['selector']]['value'] = [];
+        if (!is_array($options['values']) && is_string($options['values'])) {
+          $options['values'] = preg_split('/\R/', $options['values']);
+          if(!empty($options['values']) && end($options['values']) == "")
+            array_pop($options['values']);
         }
+        $state[$options['state']][$options['selector']]['value'] = reset($options['values']);
+
         return $state;
 
       case CONDITIONAL_FIELDS_DEPENDENCY_VALUES_XOR:
@@ -44,10 +45,15 @@ class Select extends ConditionalFieldsHandlerBase {
         $regex = TRUE;
       case CONDITIONAL_FIELDS_DEPENDENCY_VALUES_NOT:
       case CONDITIONAL_FIELDS_DEPENDENCY_VALUES_OR:
+        if (!is_array($options['values']) && is_string($options['values'])) {
+          $options['values'] = preg_split('/\R/', $options['values']);
+          if(!empty($options['values']) && end($options['values']) == "")
+            array_pop($options['values']);
+        }
         foreach ($options['values'] as $value) {
           $select_states[$options['state']][] = [
             $options['selector'] => [
-              $options['condition'] => empty($regex) ? [$value] : $options['value'],
+              $options['condition'] => empty($regex) ? $value : $options['value'],
             ],
           ];
         }
diff --git a/tests/src/FunctionalJavascript/ConditionalFieldTestBase.php b/tests/src/FunctionalJavascript/ConditionalFieldTestBase.php
index c7d01d8..05c1a22 100644
--- a/tests/src/FunctionalJavascript/ConditionalFieldTestBase.php
+++ b/tests/src/FunctionalJavascript/ConditionalFieldTestBase.php
@@ -6,6 +6,8 @@ use Drupal\FunctionalJavascriptTests\JavascriptTestBase;
 
 /**
  * Base setup for ConditionalField tests.
+ *
+ * @group conditional_fields
  */
 abstract class ConditionalFieldTestBase extends JavascriptTestBase {
 
