diff --git a/salesforcefields.module b/salesforcefields.module
index 55b5aae..698bb63 100644
--- a/salesforcefields.module
+++ b/salesforcefields.module
@@ -29,8 +29,8 @@ function salesforcefields_salesforce_api_connect()
 	// Salesforce Login information
 	//$wsdl = $toolkit_path . '/soapclient/partner.wsdl.xml';
 	$wsdl = $toolkit_path . '/soapclient/enterprise.wsdl.xml';
-	$userName = variable_get('salesforcewebform_user', NULL);
-	$password = variable_get('salesforcewebform_pw', NULL);
+	$userName = salesforcewebform_decrypt(variable_get('salesforcewebform_user', NULL));
+	$password = salesforcewebform_decrypt(variable_get('salesforcewebform_pw', NULL));
 	
 	// Process of logging on and getting a salesforce.com session
 	//$client = new SforcePartnerClient();
diff --git a/salesforcewebform.module b/salesforcewebform.module
index d4ae1b2..17cf9da 100644
--- a/salesforcewebform.module
+++ b/salesforcewebform.module
@@ -220,7 +220,14 @@ function salesforcewebform_admin_settings() {
     '#title' => t('Change Login Information'),
     '#description' => t('Check this to override the current login information with the entered values.')
   );
+	$form['login']['salesforcewebform_encrypt_login'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Encrypt Login Information'),
+    '#default_value' => variable_get('salesforcewebform_encrypt_login', FALSE),
+    '#description' => t('HIGHLY recommended. Check to encrypt Salesforce credentials in the database. Requires the that the <a href="http://drupal.org/project/aes">AES</a> module be installed an properly configured.')
+  );
 	$form['#validate'][] = 'parse_custom_field_spec';
+	$form['#submit'][] = 'salesforcewebform_admin_settings_submit';
 	return system_settings_form($form); 
 }
 
@@ -235,14 +242,52 @@ function parse_custom_field_spec ($form, &$form_state) {
 			$custom_fields[$new_field[0]] = $new_field[1];
 		}
 	}
+
+	if ( $form_state['values']['salesforcewebform_encrypt_login'] === 1 ) {
+    if (!module_exists('aes')) {
+      form_set_error('salesforcewebform_encrypt_login', t('AES Encryption module is not installed.'));
+    }
+    else {
+      if (!variable_get('aes_key_path', FALSE) || variable_get('aes_key_storage_method', FALSE) != 'File') {
+        $error = t('AES Encryption is installed but not configured securely.
+          Please go <a href="/admin/settings/aes">configure AES Encryption to use
+          file storage</a> to enable encryption for SalesForce credentials.');
+        form_set_error('salesforcewebform_encrypt_login', $error);
+      }
+    }
+	}
+
 	if ( $form_state['values']['salesforcewebform_change_login'] === 0 ) {
-    form_set_value($form['login']['salesforcewebform_user'], variable_get('salesforcewebform_user', NULL), $form_state);
-    form_set_value($form['login']['salesforcewebform_pw'], variable_get('salesforcewebform_pw', NULL), $form_state);
+    form_set_value($form['login']['salesforcewebform_user'], salesforcewebform_decrypt(variable_get('salesforcewebform_user', NULL)), $form_state);
+    form_set_value($form['login']['salesforcewebform_pw'], salesforcewebform_decrypt(variable_get('salesforcewebform_pw', NULL)), $form_state);
   }
 	form_set_value($form['field_settings']['salesforcewebform_custom_fields'], $custom_fields, $form_state);
 	form_set_value($form['salesforcewebform_toolkit_path'], $form_state['values']['salesforcewebform_toolkit_path'], $form_state);
 }
 
+function salesforcewebform_admin_settings_submit($form, &$form_state) {
+  $values = $form_state['values'];
+  
+  if ($values['salesforcewebform_encrypt_login'] && !empty($values['salesforcewebform_user'])) {
+    $form_state['values']['salesforcewebform_user'] = salesforcewebform_encrypt($values['salesforcewebform_user']);
+    $form_state['values']['salesforcewebform_pw'] = salesforcewebform_encrypt($values['salesforcewebform_pw']);
+  }
+}
+
+function salesforcewebform_encrypt($string) {
+  return aes_encrypt($string);
+}
+
+function salesforcewebform_decrypt($string) {
+  if (variable_get('salesforcewebform_encrypt_login', FALSE)) {
+    return aes_decrypt($string);    
+  }
+  else {
+    return $string;
+  }
+}
+
+
 function create_custom_field_spec ($custom_fields) {
 	if ( empty($custom_fields) ) {
 		return "";
