diff --git a/commerce_ups.admin.inc b/commerce_ups.admin.inc
index d01841a..2efd1e6 100644
--- a/commerce_ups.admin.inc
+++ b/commerce_ups.admin.inc
@@ -50,21 +50,30 @@ function commerce_ups_settings_form($form, &$form_state) {
       '#title' => FALSE,
     ),
   );
-  if (commerce_ups_encryption_available()) {
-    $form['api']['encryption']['status']['#markup'] =
-      'Encryption is available and configured properly.';
-    $form['api']['encryption']['commerce_ups_encrypt'] = array(
-      '#type' => 'checkbox',
-      '#title' => t('Encrypt UPS credentials (HIGHLY RECOMMENDED)'),
-      '#description' => t('Note: Enabling this setting automatically will encrypt your password even though you cannot see it. Disabling this checkbox requires that you re-enter a password.'),
-      '#default_value' => $encrypted,
-    );
+  // Check if the encryption is available at all.
+  if (commerce_ups_encryption_available(array('fail_threshold' => 'errors'))) {
+    // Check if the AES encryption is configured properly.
+    if (commerce_ups_encryption_available(array('fail_threshold' => 'warnings'))) {
+      $form['api']['encryption']['status']['#markup'] = '<span class="ok">' . t('Encryption is available and configured properly.') . '</span>';
+      // Show the checkbox that allows user to encrypt the UPS credentials anyway.
+      $form['api']['encryption']['commerce_ups_encrypt'] = array(
+        '#type' => 'checkbox',
+        '#title' => t('Encrypt UPS credentials (HIGHLY RECOMMENDED)'),
+        '#description' => t('Note: Enabling this setting automatically will encrypt your password even though you cannot see it. Disabling this checkbox requires that you re-enter a password.'),
+        '#default_value' => $encrypted,
+      );
+    }
+    // AES is configured to store the encryption key in the database. That is
+    // not the safest option, so we will notify the administrator.
+    elseif (commerce_ups_encryption_available(array('fail_threshold' => 'errors'))) {
+      $form['api']['encryption']['status']['#markup'] = '<span class="warning">' . t('AES encryption is available but it is not configured in the most secure way.<br>In order to encrypt your UPS credentials, you need to use file storage for storing the encryption key.<br>Click <a href="@aes_link">here</a> to open AES configuration page.', array('@aes_link' => url('admin/config/system/aes'))) . '</span>';
+    }
   }
+  // AES encryption module is not installed or is not available.
   else {
-    $aes_link = l(t('AES'), 'http://drupal.org/project/aes', array('attributes' => array('target' => '_blank')));
+    $aes_link = l(t('AES'), 'https://www.drupal.org/project/aes', array('attributes' => array('target' => '_blank')));
     $form['api']['encryption']['status']['#markup'] = '<span class="error">' . t('!aes is not installed - your login credentials will not be encrypted.', array('!aes' => $aes_link)) . '</span>';
   }
-
   $form['origin'] = array(
     '#type' => 'fieldset',
     '#title' => t('Ship From Address'),
diff --git a/commerce_ups.module b/commerce_ups.module
index 0305755..1ec345b 100644
--- a/commerce_ups.module
+++ b/commerce_ups.module
@@ -251,7 +251,7 @@ function commerce_ups_encryption_available($options = array()) {
   }
   elseif ($check_config) {
     if (!variable_get('aes_key_path', FALSE) || variable_get('aes_key_storage_method', FALSE) != 'File') {
-      $warnings[] = 'AES Encryption is installed but not configured securely. Please go ' . l('configure AES Encryption to use file storage', 'admin/settings/aes') . ' to enable encryption for UPS credentials.';
+      $warnings[] = 'AES Encryption is installed but not configured securely. Please go ' . l('configure AES Encryption to use file storage', 'admin/config/system/aes') . ' to enable encryption for UPS credentials.';
     }
   }
 
@@ -272,9 +272,12 @@ function commerce_ups_encryption_available($options = array()) {
       if (empty($errors)) {
         return TRUE;
       }
-  case 'warnings':
-    if (empty($errors) && empty($warnings)) {
-      return TRUE;
-    }
+      break;
+
+    case 'warnings':
+      if (empty($errors) && empty($warnings)) {
+        return TRUE;
+      }
+      break;
   }
 }
