diff --git a/profiles/unl_profile/unl_profile.install b/profiles/unl_profile/unl_profile.install
index 10ad169a2a7a6f9537f7bc42ea025eb1b8054acf..4d67bfa13405d6603397026c23c11f05b49d9506 100644
--- a/profiles/unl_profile/unl_profile.install
+++ b/profiles/unl_profile/unl_profile.install
@@ -195,6 +195,12 @@ EOF;
 
   // Update the settings file to use shared database tables (unless this is the default site)
   if (conf_path() != 'sites/default') {
+    
+    // Only enable CAS on subsites until we get some sort of bootstrap setup.
+    module_enable(array('unl_cas'));
+    
+    
+    // Update the db config to include shared tables.
     $parent_site_database_settings = unl_profile_get_default_site_db_settings();
 
     $new_prefix = $GLOBALS['databases']['default']['default']['prefix'];
@@ -235,9 +241,11 @@ EOF;
     $writable = drupal_verify_install_file($settings_file, FILE_READABLE|FILE_WRITABLE);
 
     drupal_rewrite_settings($settings);
-
-    // Only enable CAS on subsites until we get some sort of bootstrap setup.
-    module_enable(array('unl_cas'));
+    
+    // Make drupal realize that we've changed some db settings.
+    Database::addConnectionInfo('new_site', 'default', $settings['databases']['value']['default']['default']);
+    db_set_active('new_site');
+    drupal_static_reset();
 
     // Copy the anonymous/authenticated user roles' permissions for text formats from the default site.
     db_query(
@@ -263,6 +271,7 @@ EOF;
 
     // Assign most permissions to the Site Admin role.
     $all_permissions = module_invoke_all('permission');
+    $all_filter_permissions = array_keys(module_invoke('filter', 'permission'));
     unset($all_permissions['unl site creation']);
     unset($all_permissions['unl grant all permissions']);
     unset($all_permissions['unl administer administrator permissions']);
@@ -271,10 +280,25 @@ EOF;
     unset($all_permissions['administer software updates']);
     unset($all_permissions['administer imce']);
     unset($all_permissions['administer filters']);
-    foreach (array_keys(module_invoke('filter', 'permission')) as $permission) {
+    foreach ($all_filter_permissions as $permission) {
       unset($all_permissions[$permission]);
     }
     user_role_grant_permissions($site_admin_role->rid, array_keys($all_permissions));
+    
+    // Text Format/WYSIWYG specific permissions.
+    db_query("DELETE FROM {$new_prefix}role_permission WHERE permission LIKE :permission", array('permission' => 'use text format%'));
+    
+    $wysiwyg_permissions = array();
+    $data = db_query("SELECT DISTINCT permission FROM {$shared_prefix}role_permission WHERE permission LIKE :permission", array('permission' => 'use text format%'));
+    foreach ($data as $row) {
+      if (!in_array($row->permission, $all_filter_permissions)) {
+        continue;
+      }
+      $wysiwyg_permissions[] = $row->permission;
+    }
+    user_role_grant_permissions(DRUPAL_AUTHENTICATED_RID, $wysiwyg_permissions);
+    user_role_grant_permissions(variable_get('user_admin_role'), $wysiwyg_permissions);
+    user_role_grant_permissions($site_admin_role->rid, $wysiwyg_permissions);
 
     // If a site admin has been specified, add that user and add them to the Site Admin role.
     $data = db_query(