diff --git a/html/sites/all/modules/amazons3/amazons3.install b/html/sites/all/modules/amazons3/amazons3.install
index b72d4f6..3c30cbc 100644
--- a/html/sites/all/modules/amazons3/amazons3.install
+++ b/html/sites/all/modules/amazons3/amazons3.install
@@ -26,6 +26,22 @@ function amazons3_requirements($phase) {
     'description' => $fopen_allowed ? $ok_message : $error_message,
   );
 
+  if (variable_get('amazons3_bucket') == NULL) {
+    $error = t("The AmazonS3 bucket variable %bucket needs to be set
+      in settings.php", array('%bucket' => 'amazons3_bucket'));
+  }
+  else {
+    $bucket = variable_get('amazons3_bucket');
+    $error = _amazons3_validate_bucket($bucket);
+  }
+
+  $requirements['amazons3_connection'] = array(
+    'severity' => $error ?  REQUIREMENT_ERROR : REQUIREMENT_OK,
+    'title' => $t('AmazonS3'),
+    'value' => 'connection_health',
+    'description' => $error,
+  );
+
   return $requirements;
 }
 
diff --git a/html/sites/all/modules/amazons3/amazons3.module b/html/sites/all/modules/amazons3/amazons3.module
index 17a055d..77d1221 100644
--- a/html/sites/all/modules/amazons3/amazons3.module
+++ b/html/sites/all/modules/amazons3/amazons3.module
@@ -199,37 +199,58 @@ function amazons3_admin_validate($form, &$form_state) {
     }
   }
 
+  // Check the validness of the bucket.
+  $error = _amazons3_validate_bucket($bucket);
+  if ($error) {
+    form_set_error('amazons3_bucket', $error);
+  }
+}
+
+/**
+ * this needs a new name-- it checks for the bucket but als
+ * does other checks..  Checks a bunch of things for aws settings &
+ * bucket and returns specific errors.
+ *
+ * For the admin settings form, these can be then a form set error.  For
+ * the install file, this would be used to
+ * @param $bucket
+ */
+function _amazons3_validate_bucket($bucket) {
+  $error = FALSE;
   if (!libraries_load('awssdk')) {
-    form_set_error('amazons3_bucket', t('Unable to load the AWS SDK. Please check you have installed the library correctly and configured your S3 credentials.'));
+    $error = t('Unable to load the AWS SDK. Please check you have installed the library correctly and configured your S3 credentials.');
   }
   elseif (!class_exists('AmazonS3')) {
-    form_set_error('amazons3_bucket', t('Cannot load AmazonS3 class. Please check the awssdk is installed correctly'));
+    $error = t('Cannot load AmazonS3 class. Please check the awssdk is installed correctly');
   }
   else {
     try {
       $s3 = new AmazonS3();
       $response = $s3->list_objects($bucket, array(
-          'max-keys' => 1,
-        ));
+          'max-keys' => 1,
+        ));
       if (!$s3->if_bucket_exists($bucket) || !$response->isOK()) {
-        form_set_error('amazons3_bucket', t('The S3 access credentials are invalid or the bucket does not exist'));
+        $error = t('The S3 access credentials are invalid or the bucket does not exist');
       }
     }
     catch (RequestCore_Exception $e) {
       if (strstr($e->getMessage(), 'SSL certificate problem')) {
-        form_set_error('amazons3_bucket', t('There was a problem with the SSL certificate. Try setting AWS_CERTIFICATE_AUTHORITY to true in "libraries/awssdk/config.inc.php". You may also have a curl library (e.g. the default shipped with MAMP) that does not contain trust certificates for the major authorities. The following exception was thrown: @exception'), array('@exception' => $e->getMessage()));
+        $error = t('There was a problem with the SSL certificate. Try setting AWS_CERTIFICATE_AUTHORITY to true in "libraries/awssdk/config.inc.php". You may also have a curl library (e.g. the default shipped with MAMP) that does not contain trust certificates for the major authorities. The following exception was thrown: @exception', array('@exception' => $e->getMessage()));
       }
       else {
-        form_set_error('amazons3_bucket', t('There was a problem connecting to S3. The following exception was thrown: @exception'), array('@exception' => $e->getMessage()));
+        $error = t('There was a problem connecting to S3. The following exception was thrown: @exception', array('@exception' => $e->getMessage()));
       }
 
     }
     catch (Exception $e) {
-      form_set_error('amazons3_bucket', t('There was a problem using S3. The following exception was thrown: @exception'), array('@exception' => $e->getMessage()));
+      $error =  t('There was a problem using S3. The following exception was thrown: @exception', array('@exception' => $e->getMessage()));
     }
   }
+
+  return $error;
 }
 
+
 /**
  * Admin sub-form submit callback; clear file metadata cache.
  */
