diff --git a/config-templates/authsources.php b/config-templates/authsources.php
index ae3d53f5641a953c77befc782bb36ebd592e4b5e..2865d345395430a8771a8e04367dd724138b6973 100644
--- a/config-templates/authsources.php
+++ b/config-templates/authsources.php
@@ -28,6 +28,26 @@ $config = array(
         // Can be NULL/unset, in which case a builtin discovery service will be used.
         'discoURL' => null,
 
+        /*
+         * WARNING: SHA-1 is disallowed starting January the 1st, 2014.
+         *
+         * Uncomment the following option to start using SHA-256 for your signatures.
+         * Currently, simpleSAMLphp defaults to SHA-1, which has been deprecated since
+         * 2011, and will be disallowed by NIST as of 2014. Please refer to the following
+         * document for more information:
+         *
+         * http://csrc.nist.gov/publications/nistpubs/800-131A/sp800-131A.pdf
+         *
+         * If you are uncertain about identity providers supporting SHA-256 or other
+         * algorithms of the SHA-2 family, you can configure it individually in the
+         * IdP-remote metadata set for those that support it. Once you are certain that
+         * all your configured IdPs support SHA-2, you can safely remove the configuration
+         * options in the IdP-remote metadata set and uncomment the following option.
+         *
+         * Please refer to the hosted SP configuration reference for more information.
+          */
+        //'signature.algorithm' => 'http://www.w3.org/2001/04/xmldsig-more#rsa-sha256',
+
         /*
          * The attributes parameter must contain an array of desired attributes by the SP.
          * The attributes can be expressed as an array of names or as an associative array
diff --git a/docs/simplesamlphp-reference-idp-hosted.txt b/docs/simplesamlphp-reference-idp-hosted.txt
index bff8d633f5f410722019ac6ec0a2e75cc3904905..e82cebab8e866dfb2de631d64334a18ab3f5e8f6 100644
--- a/docs/simplesamlphp-reference-idp-hosted.txt
+++ b/docs/simplesamlphp-reference-idp-hosted.txt
@@ -294,13 +294,12 @@ The following SAML 2.0 options are available:
 	the default one.
 
 `signature.algorithm`
-:   The algorithm to use when signing any message generated by this identity provider. Defaults to RSA-SHA256.
+:   The algorithm to use when signing any message generated by this identity provider. Defaults to RSA-SHA1.
 :   Possible values:
 
     * `http://www.w3.org/2000/09/xmldsig#rsa-sha1`
        *Note*: the use of SHA1 is **deprecated** and will be disallowed in the future.
     * `http://www.w3.org/2001/04/xmldsig-more#rsa-sha256`
-       The default.
     * `http://www.w3.org/2001/04/xmldsig-more#rsa-sha384`
     * `http://www.w3.org/2001/04/xmldsig-more#rsa-sha512`
 
diff --git a/docs/simplesamlphp-reference-idp-remote.txt b/docs/simplesamlphp-reference-idp-remote.txt
index 390ed5af5a2b521072dff8d11f3a4e0601e23819..078b3ce51a1316f9ceb5f5da02976a8d7d9fb6d4 100644
--- a/docs/simplesamlphp-reference-idp-remote.txt
+++ b/docs/simplesamlphp-reference-idp-remote.txt
@@ -143,7 +143,7 @@ The following SAML 2.0 options are available:
 :   Endpoint URL for logout responses. Overrides the `SingleLogoutService`-option for responses.
 
 `signature.algorithm`
-:   The algorithm to use when signing any message sent to this specific identity provider. Defaults to RSA-SHA256.
+:   The algorithm to use when signing any message sent to this specific identity provider. Defaults to RSA-SHA1.
 :   Note that this option also exists in the SP configuration.
     This value in the IdP remote metadata overrides the value in the SP configuration.
 :   Possible values:
@@ -151,7 +151,6 @@ The following SAML 2.0 options are available:
     * `http://www.w3.org/2000/09/xmldsig#rsa-sha1`
        *Note*: the use of SHA1 is **deprecated** and will be disallowed in the future.
     * `http://www.w3.org/2001/04/xmldsig-more#rsa-sha256`
-      The default.
     * `http://www.w3.org/2001/04/xmldsig-more#rsa-sha384`
     * `http://www.w3.org/2001/04/xmldsig-more#rsa-sha512`
 
diff --git a/docs/simplesamlphp-reference-sp-remote.txt b/docs/simplesamlphp-reference-sp-remote.txt
index 6ad584448e5599c463af641a9a059e4e31eb3ead..7b642944662756fda39b0583d8b7986c1b2b9950 100644
--- a/docs/simplesamlphp-reference-sp-remote.txt
+++ b/docs/simplesamlphp-reference-sp-remote.txt
@@ -238,7 +238,7 @@ The following SAML 2.0 options are available:
     The value in the SP-remote metadata overrides the value in the IdP-hosted metadata.
 
 `signature.algorithm`
-:   The algorithm to use when signing any message sent to this specific service provider. Defaults to RSA-SHA256.
+:   The algorithm to use when signing any message sent to this specific service provider. Defaults to RSA-SHA1.
 :   Note that this option also exists in the IdP-hosted metadata.
     The value in the SP-remote metadata overrides the value in the IdP-hosted metadata.
 :   Possible values:
@@ -246,7 +246,6 @@ The following SAML 2.0 options are available:
     * `http://www.w3.org/2000/09/xmldsig#rsa-sha1`
        *Note*: the use of SHA1 is **deprecated** and will be disallowed in the future.
     * `http://www.w3.org/2001/04/xmldsig-more#rsa-sha256`
-       The default.
     * `http://www.w3.org/2001/04/xmldsig-more#rsa-sha384`
     * `http://www.w3.org/2001/04/xmldsig-more#rsa-sha512`
 
diff --git a/metadata-templates/saml20-idp-hosted.php b/metadata-templates/saml20-idp-hosted.php
index a1ac537671ed91848c1dee6b38e48ea668c25342..87c03f6befb34144d263d18d8ee933656fb592eb 100644
--- a/metadata-templates/saml20-idp-hosted.php
+++ b/metadata-templates/saml20-idp-hosted.php
@@ -23,6 +23,26 @@ $metadata['__DYNAMIC:1__'] = array(
 	 */
 	'auth' => 'example-userpass',
 
+	/*
+	 * WARNING: SHA-1 is disallowed starting January the 1st, 2014.
+	 *
+	 * Uncomment the following option to start using SHA-256 for your signatures.
+	 * Currently, simpleSAMLphp defaults to SHA-1, which has been deprecated since
+	 * 2011, and will be disallowed by NIST as of 2014. Please refer to the following
+	 * document for more information:
+	 * 
+	 * http://csrc.nist.gov/publications/nistpubs/800-131A/sp800-131A.pdf
+	 *
+	 * If you are uncertain about service providers supporting SHA-256 or other
+	 * algorithms of the SHA-2 family, you can configure it individually in the
+	 * SP-remote metadata set for those that support it. Once you are certain that
+	 * all your configured SPs support SHA-2, you can safely remove the configuration
+	 * options in the SP-remote metadata set and uncomment the following option.
+	 *
+	 * Please refer to the IdP hosted reference for more information.
+	 */
+	//'signature.algorithm' => 'http://www.w3.org/2001/04/xmldsig-more#rsa-sha256',
+
 	/* Uncomment the following to use the uri NameFormat on attributes. */
 	/*
 	'attributes.NameFormat' => 'urn:oasis:names:tc:SAML:2.0:attrname-format:uri',
diff --git a/modules/adfs/lib/IdP/ADFS.php b/modules/adfs/lib/IdP/ADFS.php
index 3db1cddb6d10e6b2cf84d06b127fcb5587613766..8fd9699e8e4e93cd040847fd7c544450274960bd 100644
--- a/modules/adfs/lib/IdP/ADFS.php
+++ b/modules/adfs/lib/IdP/ADFS.php
@@ -96,7 +96,6 @@ class sspmod_adfs_IdP_ADFS {
 		$objXMLSecDSig->setCanonicalMethod(XMLSecurityDSig::EXC_C14N);	
 		$responsedom = SAML2_DOMDocumentFactory::fromString(str_replace ("\r", "", $response));
 		$firstassertionroot = $responsedom->getElementsByTagName('Assertion')->item(0);
-		/* TODO: this hardcodes SHA-1. Can we upgrade to something better? */
 		$objXMLSecDSig->addReferenceList(array($firstassertionroot), XMLSecurityDSig::SHA1,
 			array('http://www.w3.org/2000/09/xmldsig#enveloped-signature', XMLSecurityDSig::EXC_C14N),
 			array('id_name' => 'AssertionID'));
diff --git a/modules/saml/docs/sp.txt b/modules/saml/docs/sp.txt
index 7833ebdceaad7ebbd0f69872e3b9c1e695f577d5..c3a24c8f15baa85502cddb141ae071dff601854e 100644
--- a/modules/saml/docs/sp.txt
+++ b/modules/saml/docs/sp.txt
@@ -333,13 +333,12 @@ Options
 :   *Note*: SAML 2 specific.
 
 `signature.algorithm`
-:   The algorithm to use when signing any message generated by this service provider. Defaults to RSA-SHA256.
+:   The algorithm to use when signing any message generated by this service provider. Defaults to RSA-SHA1.
 :   Possible values:
 
     * `http://www.w3.org/2000/09/xmldsig#rsa-sha1`
        *Note*: the use of SHA1 is **deprecated** and will be disallowed in the future.
     * `http://www.w3.org/2001/04/xmldsig-more#rsa-sha256`
-       The default.
     * `http://www.w3.org/2001/04/xmldsig-more#rsa-sha384`
     * `http://www.w3.org/2001/04/xmldsig-more#rsa-sha512`
 
diff --git a/modules/saml/lib/Message.php b/modules/saml/lib/Message.php
index eb926394a07c0b324e36ff00a4827806060fd5de..da841b5bb4fc9fee15daa99c3036ea1d2efca815 100644
--- a/modules/saml/lib/Message.php
+++ b/modules/saml/lib/Message.php
@@ -30,7 +30,17 @@ class sspmod_saml_Message {
 
 		$algo = $dstMetadata->getString('signature.algorithm', NULL);
 		if ($algo === NULL) {
-			$algo = $srcMetadata->getString('signature.algorithm', XMLSecurityKey::RSA_SHA256);
+			/*
+			 * In the NIST Special Publication 800-131A, SHA-1 became deprecated for generating
+			 * new digital signatures in 2011, and will be explicitly disallowed starting the 1st
+			 * of January, 2014. We'll keep this as a default for the next release and mark it
+			 * as deprecated, as part of the transition to SHA-256.
+			 *
+			 * See http://csrc.nist.gov/publications/nistpubs/800-131A/sp800-131A.pdf for more info.
+			 *
+			 * TODO: change default to XMLSecurityKey::RSA_SHA256.
+			 */
+			$algo = $srcMetadata->getString('signature.algorithm', XMLSecurityKey::RSA_SHA1);
 		}
 
 		$privateKey = new XMLSecurityKey($algo, array('type' => 'private'));