diff --git a/mongodb_watchdog/mongodb_watchdog.admin.inc b/mongodb_watchdog/mongodb_watchdog.admin.inc
index a844192..563178a 100644
--- a/mongodb_watchdog/mongodb_watchdog.admin.inc
+++ b/mongodb_watchdog/mongodb_watchdog.admin.inc
@@ -39,7 +39,7 @@ function mongodb_watchdog_overview() {
   $pager_page_array = explode(',', $page);
   $on_page = $pager_page_array[0];
 
-  $cursor = mongodb_collection(variable_get('mongodb_collectionname', 'watchdog'))
+  $cursor = mongodb_collection(variable_get('mongodb_watchdog', 'watchdog'))
     ->find(mongodb_watchdog_build_filter_query())
     ->limit($per_page)
     ->skip($on_page * $per_page)
@@ -60,7 +60,7 @@ function mongodb_watchdog_overview() {
   $rows = array();
   foreach ($cursor as $id => $value) {
     if ($value['type'] == 'php' && $value['message'] == '%type: %message in %function (line %line of %file).') {
-      $collection = mongodb_collection(variable_get('mongodb_watchdog_collectionname', 'watchdog'));
+      $collection = mongodb_collection(variable_get('mongodb_watchdog', 'watchdog'));
       $collection = $collection->db->selectCollection('watchdog_event_' . $value['_id']);
       if ($result = $collection->find()->sort(array('$natural' => -1))->limit(1)->getNext()) {
         $value['file'] = basename($result['variables']['%file']);
@@ -89,7 +89,7 @@ function mongodb_watchdog_overview() {
 
   // Add the pager.
   if ($on_page > 0 || count($rows) >= $per_page) {
-    $pager_total_items[0] = mongodb_collection(variable_get('mongodb_collectionname', 'watchdog'))
+    $pager_total_items[0] = mongodb_collection(variable_get('mongodb_watchdog', 'watchdog'))
       ->find(mongodb_watchdog_build_filter_query())
       ->count();
     $pager_total[0] = ceil($pager_total_items[0] / $per_page);
@@ -134,7 +134,7 @@ function mongodb_watchdog_event($dblog) {
       isset($dblog['count']) ? $dblog['count'] : '',
     ),
   );
-  $build['reports'] = array( 
+  $build['reports'] = array(
     '#type' => 'markup',
     '#markup' => l(t('Return to log report'), 'admin/reports/mongodb'),
   );
@@ -145,7 +145,7 @@ function mongodb_watchdog_event($dblog) {
   );
   // @todo: the count is unreliable, so just get the actual number of entries.
 //$total = min($dblog['count'], variable_get('mongodb_watchdog_items', 10000));
-  $collection = mongodb_collection(variable_get('mongodb_watchdog_collectionname', 'watchdog'));
+  $collection = mongodb_collection(variable_get('mongodb_watchdog', 'watchdog'));
   $collection = $collection->db->selectCollection('watchdog_event_' . $dblog['_id']);
   $total = $collection->count();
   $limit = 20;
@@ -208,7 +208,7 @@ function mongodb_watchdog_event($dblog) {
 }
 
 /**
- * Initialize the global pager variables for use in a mongodb_watchdog event list. 
+ * Initialize the global pager variables for use in a mongodb_watchdog event list.
  */
 function mongodb_watchdog_pager_init($element, $limit, $total) {
   global $pager_page_array, $pager_total, $pager_total_items;
@@ -340,7 +340,7 @@ function mongodb_watchdog_filter_form_submit($form, &$form_state) {
  */
 function _mongodb_watchdog_get_message_types() {
   // As of version 1.0.1, the PHP driver doesn't expose the 'distinct' command.
-  $collection = mongodb_collection(variable_get('mongodb_collectionname', 'watchdog'));
+  $collection = mongodb_collection(variable_get('mongodb_watchdog', 'watchdog'));
   $result = $collection->db->command(array('distinct' => $collection->getName(), 'key' => 'type'));
   return $result['values'];
 }
@@ -374,7 +374,7 @@ function mongodb_watchdog_clear_log_form($form) {
 function mongodb_watchdog_clear_log_submit() {
   try {
     // Drop the watchdog collection.
-    $collection = mongodb_collection(variable_get('mongodb_collectionname', 'watchdog'));
+    $collection = mongodb_collection(variable_get('mongodb_watchdog', 'watchdog'));
     $collection->db->dropCollection($collection->getName());
 
     // Recreate the indexes.
diff --git a/mongodb_watchdog/mongodb_watchdog.install b/mongodb_watchdog/mongodb_watchdog.install
index ac5a5f1..575fe50 100644
--- a/mongodb_watchdog/mongodb_watchdog.install
+++ b/mongodb_watchdog/mongodb_watchdog.install
@@ -1,24 +1,55 @@
 <?php
- 
+
 /**
  * @file
  * MongoDB watchdog install file.
  */
- 
+
 /**
- * Implement hook_install().
+ * Implements hook_install().
  */
 function mongodb_watchdog_install() {
   mongodb_watchdog_ensure_indexes();
 }
- 
+
 /**
- * Implement hook_enable().
+ * Implements hook_enable().
  */
 function mongodb_watchdog_enable() {
   mongodb_watchdog_ensure_indexes();
 }
- 
+
+/**
+ * Implements hook_uninstall().
+ *
+ * Drop /all/ the watchdog collections.
+ */
+function mongodb_watchdog_uninstall() {
+  // Drop the base watchdog collection
+  $watchdog_name = variable_get('mongodb_watchdog', 'watchdog');
+  $watchdog = mongodb_collection($watchdog_name);
+  $watchdog->drop();
+
+  // Then drop all watchdog event collections in all known database aliases.
+  $aliases = variable_get('mongodb_connections', array());
+  $aliases['default'] = TRUE;
+  $regex = '/\.watchdog_event_[[:xdigit:]]{32}$/';
+  foreach (array_keys($aliases) as $alias) {
+    $db = mongodb($alias);
+    foreach ($db->listCollections() as $collection) {
+      if (preg_match($regex, $collection)) {
+        $collection->drop();
+      }
+    }
+  }
+  if ($count) {
+    drupal_set_message(format_plural($count, 'Dropped 1 watchdog collection', 'Dropped @count watchdog collections'));
+  }
+
+  variable_del('mongodb_watchdog');
+  variable_del('mongodb_watchdog_items');
+}
+
 /**
  * Create an index for the watchdog table.
  *
@@ -27,32 +58,34 @@ function mongodb_watchdog_enable() {
  * numbers should be much faster to create than one with a string included.
  */
 function mongodb_watchdog_ensure_indexes() {
+  $watchdog = mongodb_collection(variable_get('mongodb_watchdog', 'watchdog'));
+
   // Index for adding/updating increments.
   $index = array(
     'line' => 1,
     'timestamp' => -1
   );
-  mongodb_collection('watchdog')->ensureIndex($index);
+  $watchdog->ensureIndex($index);
 
   // Index for admin page without filters.
   $index = array(
     'timestamp' => -1
   );
-  mongodb_collection('watchdog')->ensureIndex($index);
+  $watchdog->ensureIndex($index);
 
   // Index for admin page filtering by type.
   $index = array(
     'type' => 1,
     'timestamp' => -1
   );
-  mongodb_collection('watchdog')->ensureIndex($index);
+  $watchdog->ensureIndex($index);
 
   // Index for admin page filtering by severity.
   $index = array(
     'severity' => 1,
     'timestamp' => -1
   );
-  mongodb_collection('watchdog')->ensureIndex($index);
+  $watchdog->ensureIndex($index);
 
   // Index for admin page filtering by type and severity.
   $index = array(
@@ -60,5 +93,18 @@ function mongodb_watchdog_ensure_indexes() {
     'severity' => 1,
     'timestamp' => -1
   );
-  mongodb_collection('watchdog')->ensureIndex($index);
+  $watchdog->ensureIndex($index);
+}
+
+/**
+ * Changes a variable name that defines a collection to store events.
+ */
+function mongodb_watchdog_update_7000() {
+  $collection_name = variable_get('mongodb_collectionname', 'watchdog');
+  if ($collection_name !== 'watchdog') {
+    variable_set('mongodb_watchdog', $collection_name);
+  }
+  variable_del('mongodb_collectionname');
+  variable_del('mongodb_watchdog_collectionname');
 }
+
diff --git a/mongodb_watchdog/mongodb_watchdog.module b/mongodb_watchdog/mongodb_watchdog.module
index dbb2e89..2bc4a27 100644
--- a/mongodb_watchdog/mongodb_watchdog.module
+++ b/mongodb_watchdog/mongodb_watchdog.module
@@ -32,7 +32,7 @@ function mongodb_watchdog_menu() {
  * Load the MongoDB watchdog event.
  */
 function mongodb_watchdog_event_load($id) {
-  $result = mongodb_collection(variable_get('mongodb_collectionname', 'watchdog'))->findOne(array('_id' => $id));
+  $result = mongodb_collection(variable_get('mongodb_watchdog', 'watchdog'))->findOne(array('_id' => $id));
   return $result ? $result : FALSE;
 }
 
@@ -59,7 +59,7 @@ function mongodb_watchdog_watchdog(array $log_entry) {
     '$set' => $log_entry,
     '$inc' => array('count' => 1),
   );
-  $collection = mongodb_collection(variable_get('mongodb_watchdog_collectionname', 'watchdog'));
+  $collection = mongodb_collection(variable_get('mongodb_watchdog', 'watchdog'));
   $id = md5($log_entry['function'] . ':' . $log_entry['line'] . ':' . $log_entry['severity'] . ':' . $log_entry['type'] . ':' . $log_entry['message']);
   $collection->update(array('_id' => $id), $newobj, array('upsert' => TRUE));
   $result = $collection->db->command(array('getlasterror' => 1));
diff --git a/mongodb_watchdog/mongodb_watchdog.test b/mongodb_watchdog/mongodb_watchdog.test
index 1851327..c7d0714 100644
--- a/mongodb_watchdog/mongodb_watchdog.test
+++ b/mongodb_watchdog/mongodb_watchdog.test
@@ -159,7 +159,7 @@ class MongoDBLogTestCase extends DrupalWebTestCase {
     // Logout user.
     $this->drupalLogout();
     // Fetch row ids in watchdog that relate to the user.
-    $collection = mongodb_collection(variable_get('mongodb_collectionname', 'watchdog'));
+    $collection = mongodb_collection(variable_get('mongodb_watchdog', 'watchdog'));
     $query = array('uid' => $user->uid);
     $result = $collection->find($query, array('_id' => 1));
     foreach ($result as $row) {
