diff --git a/core/includes/form.inc b/core/includes/form.inc
index 6956f04..57552c0 100644
--- a/core/includes/form.inc
+++ b/core/includes/form.inc
@@ -2907,7 +2907,7 @@ function password_confirm_validate($element, &$element_state) {
       form_error($element, t('The specified passwords do not match.'));
     }
   }
-  elseif ($element['#required'] && !empty($element_state['input'])) {
+  elseif (!empty($element['#required_but_empty']) || ($element['#required'] && !empty($element_state['input']))) {
     form_error($element, t('Password field is required.'));
   }
 
@@ -3288,7 +3288,7 @@ function form_process_pattern($element, &$form_state) {
  * @see form_process_pattern()
  */
 function form_validate_pattern($element, &$form_state) {
-  if ($element['#value'] !== '') {
+  if (!empty($element['#required_but_empty']) || $element['#value'] !== '') {
     // The pattern must match the entire string and should have the same
     // behavior as the RegExp object in ECMA 262.
     // - Use bracket-style delimiters to avoid introducing a special delimiter
@@ -4115,7 +4115,7 @@ function theme_range($variables) {
  */
 function form_validate_number(&$element, &$form_state) {
   $value = $element['#value'];
-  if ($value === '') {
+  if (!empty($element['#required_but_empty']) || $value === '') {
     return;
   }
 
diff --git a/core/modules/image/image.admin.inc b/core/modules/image/image.admin.inc
index 933a4ad..665b016 100644
--- a/core/modules/image/image.admin.inc
+++ b/core/modules/image/image.admin.inc
@@ -434,7 +434,7 @@ function image_effect_delete_form_submit($form, &$form_state) {
  * Element validate handler to ensure a hexadecimal color value.
  */
 function image_effect_color_validate($element, &$form_state) {
-  if ($element['#value'] != '') {
+  if ($element['#value'] !== '') {
     $hex_value = preg_replace('/^#/', '', $element['#value']);
     if (!preg_match('/^#[0-9A-F]{3}([0-9A-F]{3})?$/', $element['#value'])) {
       form_error($element, t('!name must be a hexadecimal color value.', array('!name' => $element['#title'])));
