diff --git a/modules/studyroom_availability/studyroom_availability.module b/modules/studyroom_availability/studyroom_availability.module
index 5efe125..583b0a9 100755
--- a/modules/studyroom_availability/studyroom_availability.module
+++ b/modules/studyroom_availability/studyroom_availability.module
@@ -90,67 +90,69 @@ function studyroom_availability_theme() {
 /**
  * Searches for availability and constructs the page.
  *
+ * This page layout function is responsible for generating two pages:
+ *  1. The search interface, including a location and date. This is the default
+ *     page, and is available at /studyroom/availability. If the $date argument
+ *     is empty (NULL), then the search interface will be displayed. The
+ *     availability table (see 2) will only be displayed if the $location and
+ *     $date arguments are not empty (NULL) and valid.
+ *  2. The availability table for the selected location on the selected date.
+ *
  * @param string $location
  *   The location for the search.
  * @param sting $date
  *   The start date for the search.
  */
 function studyroom_availability_page($location = NULL, $date = NULL) {
-  $spaces = studyroom_space_get_spaces();
-  if (empty($spaces)) {
-    drupal_set_message(t('No spaces have been defined yet, so you cannot search for availability.'), 'error');
-    drupal_goto();
-  }
-
   $content = array();
 
   // Check validity of date.
-  $date_invalid = FALSE;
+  $date_valid = FALSE;
   if (isset($date)) {
     $date_obj = new DateObject($date);
-    if (isset($date_obj->errors) && count($date_obj->errors)) {
-      unset($date_obj);
-      $date_invalid = TRUE;
+    if (empty($date_obj->errors)) {
+      $date_valid = TRUE;
     }
   }
 
-  $loc_found = FALSE;
+  $loc_valid = FALSE;
   if (!isset($location)) {
     // See if only one location.
     $loc = studyroom_space_locations();
     if (count($loc) == 1) {
       $location_obj = array_shift($loc);
-      $loc_found = TRUE;
+      $loc_valid = TRUE;
     }
   }
   else {
     $location_obj = studyroom_space_location_load($location);
     if (is_object($location_obj)) {
-      $loc_found = TRUE;
+      $loc_valid = TRUE;
     }
   }
 
-  if (isset($date_obj) && $loc_found) {
+  // Location and date are valid so display the availability table (display #2).
+  if ($date_valid && $loc_valid) {
     if (!user_is_logged_in()) {
       drupal_set_message(t('You must !login to make a reservation.',
         array('!login' => l('Sign in', 'user/login', array('query' => drupal_get_destination())))));
     }
+    $content['date'] = $date_obj;
     $content['date_formatted'] = date_format_date($date_obj, 'studyroom_availability_date');
     $content['results'] = studyroom_availability_spaces($location_obj, $date_obj);
     $output = theme('studyroom_availability_results', $content);
   }
   else {
-    // @todo Fix this logic here.  Issue if more that one location found.
-    $content['search_form'] = drupal_get_form('studyroom_availability_search_form');
-    if ($date_invalid) {
-      $content['message'] = '<p>' . t('Date sent could not be used.') . '</p>';
+    if (!$date_valid) {
+      drupal_set_message(t('Invalid date specified. The date must be of the form, YYYY-MM-DD.'), 'error');
     }
-    elseif (!$loc_found) {
-      $content['message'] = '<p>' . t('A location could not be found to search on.') . '</p>';
+    elseif (!$loc_valid) {
+      drupal_set_message(t('Invalid location specified. Please select a valid location from the Location dropdown box.'), 'error');
     }
     else {
-      $content['message'] = '<p>' . t('Perform a search to get studyroom availability information.') . '</p>';
+      drupal_set_message(t('Perform a search to get studyroom availability information.'));
     }
+    $content['search_form'] = drupal_get_form('studyroom_availability_search_form');
     $output = theme('studyroom_availability_search', $content);
   }
 
@@ -159,8 +161,13 @@ function studyroom_availability_page($location = NULL, $date = NULL) {
 
 /**
  * Generate the search form.
+ *
+ * The $location argument is optional -- if
+ * specified, it will be the default value in the select box.
+ *
+ * @see drupal_get_form
  */
-function studyroom_availability_search_form($form, $form_state) {
+function studyroom_availability_search_form($form, $form_state, $default_location = NULL) {
   $form = array();
   $form['search_date'] = array(
     '#type' => 'date_popup',
@@ -186,6 +193,10 @@ function studyroom_availability_search_form($form, $form_state) {
     $form['location']['#type'] = 'select';
     $form['location']['#options'] = $options;
 
+    // Set the default value to the $location argument, if present.
+    if (isset($default_location) && isset($options[$default_location])) {
+      $form['location']['#default_value'] = $default_location;
+    }
   }
   else {
     $loc = array_shift($locations);
diff --git a/modules/studyroom_availability/theme/studyroom-availability-search.tpl.php b/modules/studyroom_availability/theme/studyroom-availability-search.tpl.php
index 2e16c0a..918aaa2 100644
--- a/modules/studyroom_availability/theme/studyroom-availability-search.tpl.php
+++ b/modules/studyroom_availability/theme/studyroom-availability-search.tpl.php
@@ -6,8 +6,6 @@
  *
  * Available variables:
  *  - $search_form - The actual search form.
- *  - $message - The message to display to the user.
  */
 ?>
 <?php print render($search_form); ?>
-<?php print render($message); ?>
