diff --git a/admin/settings/security.php b/admin/settings/security.php
index de44e51835f..382f3f26ea1 100644
--- a/admin/settings/security.php
+++ b/admin/settings/security.php
@@ -81,6 +81,7 @@ if ($hassiteconfig) { // speedup for non-admins, add all caps used on this page
$temp->add(new admin_setting_configcheckbox('cookiesecure', get_string('cookiesecure', 'admin'), get_string('configcookiesecure', 'admin'), 0));
$temp->add(new admin_setting_configcheckbox('cookiehttponly', get_string('cookiehttponly', 'admin'), get_string('configcookiehttponly', 'admin'), 0));
$temp->add(new admin_setting_configcheckbox('allowframembedding', get_string('allowframembedding', 'admin'), get_string('allowframembedding_help', 'admin'), 0));
+ $temp->add(new admin_setting_configcheckbox('loginpasswordautocomplete', get_string('loginpasswordautocomplete', 'admin'), get_string('loginpasswordautocomplete_help', 'admin'), 0));
$ADMIN->add('security', $temp);
diff --git a/blocks/login/block_login.php b/blocks/login/block_login.php
index 0fc1f94c7ed..03868888fcb 100644
--- a/blocks/login/block_login.php
+++ b/blocks/login/block_login.php
@@ -48,7 +48,12 @@ class block_login extends block_base {
$this->content->text .= '';
$this->content->text .= '
';
- $this->content->text .= '
';
+
+ if (!empty($CFG->loginpasswordautocomplete)) {
+ $this->content->text .= '';
+ } else {
+ $this->content->text .= '';
+ }
if (isset($CFG->rememberusername) and $CFG->rememberusername == 2) {
$checked = $username ? 'checked="checked"' : '';
diff --git a/lang/en/admin.php b/lang/en/admin.php
index 578d965f10e..f648a3dbdd8 100644
--- a/lang/en/admin.php
+++ b/lang/en/admin.php
@@ -613,6 +613,8 @@ $string['logguests_help'] = 'This setting enables logging of actions by guest ac
$string['loginhttps'] = 'Use HTTPS for logins';
$string['loginpageautofocus'] = 'Autofocus login page form';
$string['loginpageautofocus_help'] = 'Enabling this option improves usability of the login page, but automatically focusing fields may be considered an accessibility issue.';
+$string['loginpasswordautocomplete'] = 'Prevent password autocompletion on login form.';
+$string['loginpasswordautocomplete_help'] = 'Having this off will let users save their account password in their browser. Switching this setting on will result in your site no longer following XHTML strict validation rules.';
$string['loglifetime'] = 'Keep logs for';
$string['longtimewarning'] = 'Please note that this process can take a long time.';
$string['maintenancemode'] = 'In maintenance mode';
diff --git a/login/index_form.html b/login/index_form.html
index 9d2616527a0..e45b8e1aa96 100644
--- a/login/index_form.html
+++ b/login/index_form.html
@@ -38,7 +38,7 @@ if ($show_instructions) {