--- sites/all/modules/securepages/securepages.module	Mon Feb 16 14:19:00 2009
+++ sites/all/modules/securepages/securepages.module	Mon Feb 16 15:19:23 2009
@@ -23,6 +23,17 @@
 
   $page_match = securepages_match($path);
 
+  if(!securepages_is_secure() && basename($_SERVER['PHP_SELF']) == 'index.php' && $page_match){
+    if(!user_access('administer site configuration')){
+      drupal_set_message(t('This page requires a secure connection, but a secure connetion is not available, please contact an administrator'), 'error');
+      drupal_access_denied();
+    }
+    else{
+      drupal_set_message(t('This site has secure pages enabled but the server does not support https, secure pages will not be used'), 'warning');
+    }
+    return;
+  }
+
   if ($_POST) {
     // If something has been posted to here then ignore the rules.
   }
@@ -69,7 +80,7 @@
     '#title' => t('Enable Secure Pages'),
     '#default_value' => variable_get('securepages_enable', 0),
     '#options' => array(t('Disabled'), t('Enabled')),
-    '#disabled' => !securepages_test(),
+    '#disabled' => !securepages_test() && !variable_get('securepages_enable', 0),
     '#description' => t('To start using secure pages this setting must be enabled. This setting will only be able to changed when the web server has been configured for SSL.<br />If this test has failed then go <a href="!url">here</a>', array('!url' => preg_replace(';^http://;i', 'https://', url($_GET['q'], NULL, NULL, TRUE)))),
   );
   $form['securepages_switch'] = array(
@@ -120,7 +131,7 @@
  * Implementation of hook_form_alter()
  */
 function securepages_form_alter($form_id, &$form) {
-  if (!variable_get('securepages_enable', 0)) {
+  if (!variable_get('securepages_enable', 0) || !securepages_is_secure()) {
     return;
   }
 
