diff --git a/mongodb.module b/mongodb.module
index 0ba1021..03d2c35 100644
--- a/mongodb.module
+++ b/mongodb.module
@@ -43,8 +43,9 @@ function mongodb($alias = 'default') {
     }
     catch (Exception $e) {
       // We failed the instentiate the Mongo object - log and error and return FALSE
+      // We have to use error_log instead of watchdog because we might be bootstrapping
       $mongo_objects[$host][$db] = FALSE;
-      watchdog('mongodb',$e->getMessage(), NULL, WATCHDOG_ERROR);
+      error_log($e->getMessage());
       return FALSE;
     }
   }
diff --git a/mongodb_session/mongodb_session.inc b/mongodb_session/mongodb_session.inc
index 85dcdf2..ea00ce5 100644
--- a/mongodb_session/mongodb_session.inc
+++ b/mongodb_session/mongodb_session.inc
@@ -140,8 +140,10 @@ function sess_read($sid) {
   }
 
   // Otherwise, if the session is still active, we have a record of the client's session in the database.
-  $user = (object) mongodb_collection(variable_get('mongodb_session', 'session'))->findOne(array('sid' => $sid));
-
+  $session_collection = mongodb_collection(variable_get('mongodb_session', 'session'));
+  if ($session_collection) $user = $session_collection->findOne(array('sid' => $sid));
+  else drupal_set_message('Unable to read session because of MongoDB collection error','error');
+  
   // Unpack binary session data.
   if ($user) {
     $user->session = $user->session->bin;
@@ -225,8 +227,8 @@ function sess_write($sid, $value) {
  *   Session ID.
  */
 function sess_destroy_sid($sid) {
-  mongodb_collection(variable_get('mongodb_session', 'session'))
-    ->remove(array('sid' => $sid));
+  $session_collection = mongodb_collection(variable_get('mongodb_session', 'session'));
+  if ($session_collection) $session_collection->remove(array('sid' => $sid));
 }
 
 /**
