diff --git a/amazons3.install b/amazons3.install
index b72d4f6..a625af7 100644
--- a/amazons3.install
+++ b/amazons3.install
@@ -9,12 +9,12 @@
  * Implements hook_requirements().
  */
 function amazons3_requirements($phase) {
-  $t = get_t();
-
   if ($phase != 'runtime') {
     return array();
   }
 
+  $t = get_t();
+
   $fopen_allowed = ini_get('allow_url_fopen');
   $ok_message = $t('The PHP allow_url_fopen setting is on.');
   $error_message = $t('Amazon S3 module requires that the allow_url_fopen setting be turned on in php.ini.');
@@ -26,6 +26,22 @@ function amazons3_requirements($phase) {
     'description' => $fopen_allowed ? $ok_message : $error_message,
   );
 
+  $bucket = variable_get('amazons3_bucket');
+  if ($bucket == NULL) {
+    $bucket = l($t('Configure'), 'admin/config/media/amazons3');
+    $error = $t('The AmazonS3 bucket needs to be configured.');
+  }
+  else {
+    $error = _amazons3_validate_bucket($bucket);
+  }
+
+  $requirements['amazons3_connection'] = array(
+    'severity' => $error ?  REQUIREMENT_ERROR : REQUIREMENT_OK,
+    'title' => $t('AmazonS3 bucket'),
+    'value' => $bucket,
+    'description' => $error,
+  );
+
   return $requirements;
 }
 
diff --git a/amazons3.module b/amazons3.module
index 6ba9230..e0bf873 100644
--- a/amazons3.module
+++ b/amazons3.module
@@ -192,38 +192,54 @@ 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 likely needs a new name -- it checks for the bucket but also
+ * and the connection. Checks a bunch of things for aws settings &
+ * and returns specific errors.
+ *
+ * For the admin settings form, these errors can be used in a form_set_error.  For
+ * the install file, this can be used on the status report.
+ * @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();
-      if (!empty($form_state['values']['amazons3_hostname'])) {
-        $s3->set_hostname($form_state['values']['amazons3_hostname']);
-      }
       $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;
 }
 
 /**
