diff --git a/profiles/wcm_base/CHANGELOG.txt b/profiles/wcm_base/CHANGELOG.txt
index b0d6f459ff03f5ce0d767a2a613aee42fcb4eaa0..3e543325d45b5c0b809138822397e395b132a304 100644
--- a/profiles/wcm_base/CHANGELOG.txt
+++ b/profiles/wcm_base/CHANGELOG.txt
@@ -1,7 +1,8 @@
 WCM Base 7.x-1.x, 2016-05-04
 ----------------------------
-- WCM Panels Settings: Added link field to image panels panes
-- OCIO Omega Base: Render link field on image panels panes
+- WCM Panels Settings: Added link field to image panels panes.
+- OCIO Omega Base: Render link field on image panels panes.
+- WCM Base: Updated Fieldable Panes Panes to 1.10 (security release).
 
 WCM Base 7.x-1.x, 2016-04-28
 ----------------------------
diff --git a/profiles/wcm_base/modules/contrib/fieldable_panels_panes/CHANGELOG.txt b/profiles/wcm_base/modules/contrib/fieldable_panels_panes/CHANGELOG.txt
index c7ea169acf116516f84694a41b73f44eeebd3e20..7f2c9b51fdeaff16c38d7559d76890693a73cf84 100644
--- a/profiles/wcm_base/modules/contrib/fieldable_panels_panes/CHANGELOG.txt
+++ b/profiles/wcm_base/modules/contrib/fieldable_panels_panes/CHANGELOG.txt
@@ -1,3 +1,43 @@
+Fieldable Panels Panes 7.x-1.10, 2016-05-04
+-------------------------------------------
+By cboyden, DamienMcKenna, dsnopek: Admin title formatting.
+
+
+Fieldable Panels Panes 7.x-1.9, 2016-05-03
+------------------------------------------
+#2487888 by coenvanvliet, DamienMcKenna, joelstein: Clear an object's cache
+  after it is saved or updated.
+#1910934 by jlapp, thrnio, Chris Burge, MiroslavBanov: Allow all FPP objects to
+  be used as blocks, controllable from the new settings page.
+#1986334 by David_Rothstein, grndlvl, EclipseGc, ruloweb, vilepickle, heddn,
+  MiroslavBanov, brantwynn, mairi, danieltome, azinck, DamienMcKenna, slucero:
+  Optionally allow each FPP pane to be referenced by revision ID, allowing for
+  editorial workflows when used with Panelizer.
+#2691577 by DamienMcKenna: Added placeholders for more tests.
+#2713699 by joelstein: Add pane-fpid-[FPID] class when FPPs referenced by
+  revision ID.
+#2695499 by DamienMcKenna, ttamniwdoog, azinck, heddn: On new sites,
+  non-reusable FPPs must now be referenced by revision ID, includes update
+  scripts to update sites as needed. FPPs may not have their reusability
+  changed after the initial creation. Non-reusable FPPs are always saved as a
+  new revision.
+#2493899 by Upchuk, DamienMcKenna: Language selector on FPP entity form.
+#2688577 by rigoucr, DamienMcKenna: Recover the default FPP type if it was
+  deleted in update 7108.
+#2541184 by DamienMcKenna, Andrew Edwards, solipsist: Make the admin title
+  always available so it can always be used. Also, make the FPP category
+  editable for saved objects and the revision field available when editing
+  non-reusable FPPs.
+#2717609 by dsnopek: Use the standard entity_label() function to get the FPP's
+  title if no admin title is provided for the admin UI.
+#1724394 by DamienMcKenna: Hide some links if Field UI is not installed.
+#2374577 by grasmash, DamienMcKenna, walangitan: Cache the FPPs list for CTools.
+#2508629 by malik.kotob, DamienMcKenna: Properly handle HTML entities in titles
+  when the field is a link.
+#2718091 by DamienMcKenna: Reverted #2622808 and #2718035, added test for
+  Entity API and for title links.
+
+
 Fieldable Panels Panes 7.x-1.8, 2016-03-02
 ------------------------------------------
 #2534200 by bwood, cboyden: Disable support for the Redirect module.
diff --git a/profiles/wcm_base/modules/contrib/fieldable_panels_panes/fieldable_panels_panes.api.php b/profiles/wcm_base/modules/contrib/fieldable_panels_panes/fieldable_panels_panes.api.php
index 581367ae6a2a8aedcd58ed5b58d5357c3b40c84d..2e1057f9ddd0e4e7e34846dace9824924ae6f4ae 100644
--- a/profiles/wcm_base/modules/contrib/fieldable_panels_panes/fieldable_panels_panes.api.php
+++ b/profiles/wcm_base/modules/contrib/fieldable_panels_panes/fieldable_panels_panes.api.php
@@ -89,6 +89,23 @@ function hook_fieldable_panels_pane_view($panels_pane, $view_mode, $langcode) {
   );
 }
 
+/**
+ * All the list of CTools plugin specs for FPP objects to be modified.
+ *
+ * @param array $types
+ *   All of the CTools plugin specifications for these FPP objects.
+ * @param string $bundle
+ *   The FPP bundle.
+ * @param array $entities
+ *   All of the FPP entities for this bundle indexed by their CTools subtype,
+ *   e.g. fpid:123, vid:123, uuid:123.
+ */
+function hook_fieldable_panels_panes_content_types_alter(&$types, $bundle, $entities) {
+  foreach ($types as $name => &$type) {
+    $type['icon'] = 'icon_funnyface.png';
+  }
+}
+
 /**
  * @} End of "addtogroup hooks".
  */
diff --git a/profiles/wcm_base/modules/contrib/fieldable_panels_panes/fieldable_panels_panes.info b/profiles/wcm_base/modules/contrib/fieldable_panels_panes/fieldable_panels_panes.info
index 12b101e2a2692c67b9bc65ba701b9a742640d8b1..7313e8b357deefcb5c4cb8b46d81d33cec9e32d0 100644
--- a/profiles/wcm_base/modules/contrib/fieldable_panels_panes/fieldable_panels_panes.info
+++ b/profiles/wcm_base/modules/contrib/fieldable_panels_panes/fieldable_panels_panes.info
@@ -20,6 +20,8 @@ files[] = plugins/views/fieldable_panels_panes_handler_field_delete_entity.inc
 files[] = plugins/views/fieldable_panels_panes_handler_field_edit_entity.inc
 files[] = plugins/views/fieldable_panels_panes_handler_field_view_entity.inc
 files[] = plugins/views/fieldable_panels_panes_handler_filter_bundle.inc
+files[] = plugins/views/fieldable_panels_panes_handler_field_language.inc
+files[] = plugins/views/fieldable_panels_panes_handler_filter_language.inc
 
 files[] = plugins/views/fieldable_panels_panes_handler_field_delete_revision.inc
 files[] = plugins/views/fieldable_panels_panes_handler_field_edit_revision.inc
@@ -39,10 +41,28 @@ test_dependencies[] = devel
 files[] = tests/fpp.helper.test
 files[] = tests/fpp.permissions.test
 files[] = tests/fpp.file_access.test
+files[] = tests/fpp.locale.test
+files[] = tests/fpp.entity_form.test
 
-; Information added by Drupal.org packaging script on 2016-03-02
-version = "7.x-1.8"
+; Test the interaction with the Panels module.
+test_dependencies[] = panels
+files[] = tests/fpp.with_panels.test
+
+; Test the interaction with the Panels and Entity API modules.
+test_dependencies[] = entity
+files[] = tests/fpp.with_panels_and_entity.test
+
+; Test the interaction with the Panelizer module.
+test_dependencies[] = panelizer
+files[] = tests/fpp.with_panelizer.test
+
+; Test the node revisions workflow with Revisioning module.
+test_dependencies[] = revisioning
+files[] = tests/fpp.with_revisioning.test
+
+; Information added by Drupal.org packaging script on 2016-05-04
+version = "7.x-1.10"
 core = "7.x"
 project = "fieldable_panels_panes"
-datestamp = "1456932247"
+datestamp = "1462374853"
 
diff --git a/profiles/wcm_base/modules/contrib/fieldable_panels_panes/fieldable_panels_panes.install b/profiles/wcm_base/modules/contrib/fieldable_panels_panes/fieldable_panels_panes.install
index 9bfc67d0739a86655c5dffcfceb229dc5cad0113..37b18e4555650d556ebe79f81993e10e5418f269 100644
--- a/profiles/wcm_base/modules/contrib/fieldable_panels_panes/fieldable_panels_panes.install
+++ b/profiles/wcm_base/modules/contrib/fieldable_panels_panes/fieldable_panels_panes.install
@@ -31,6 +31,15 @@ function fieldable_panels_panes_uninstall() {
 
   // Variables.
   variable_del('fieldable_panels_panes_skip_default_type');
+  variable_del('fpp_blocks_expose');
+  variable_del('fpp_hide_contextual_links');
+  variable_del('fpp_revision_locking');
+
+  // Delete any variables that begin with 'fpp_expose_'.
+  $results = db_query('SELECT name FROM {variable} WHERE name LIKE :var', array(':var' => 'fpp_expose_%'))->fetchCol();
+  foreach ($results as $var) {
+    variable_del($var);
+  }
 }
 
 /**
@@ -372,19 +381,17 @@ function fieldable_panels_panes_update_7108() {
   // Store possible existing bundles provided by other modules.
   $bundles = array();
   $entity_info = entity_get_info('fieldable_panels_pane');
-  
-  // No bundles defined. This could happen if the module was updated and cache
-  // cleared before update was run as entity info's cache will no longer
-  // contain the old default.
-  $t = get_t();
-  if (empty($entity_info['bundles'])) {
-    $entity_info['bundles'] = array(
-      'fieldable_panels_pane' => array(
-          'label' => $t('Panels pane'),
-      ),
+
+  // The default bundle is not defined. This could happen if the module was
+  // updated and cache cleared before update was run as entity info's cache
+  // will no longer contain the old default.
+  if (empty($entity_info['bundles']['fieldable_panels_pane'])) {
+    $t = get_t();
+    $entity_info['bundles']['fieldable_panels_pane'] = array(
+      'label' => $t('Panels pane'),
     );
   }
-  
+
   foreach ($entity_info['bundles'] as $bundle_name => $bundle_info) {
     $bundles[] = $bundle_info['label'];
 
@@ -413,3 +420,300 @@ function fieldable_panels_panes_update_7109() {
     'default' => '',
   ));
 }
+
+/**
+ * Clear the menu cache to pick up the new settings page.
+ */
+function fieldable_panels_panes_update_7110() {
+  variable_set('menu_rebuild_needed', TRUE);
+}
+
+/**
+ * Existing sites will disable locking.
+ */
+function fieldable_panels_panes_update_7111() {
+  $old = variable_get('fpp_revision_locking');
+  if (empty($old)) {
+    variable_set('fpp_revision_locking', 'legacy');
+    return t('The FPP locking option has been disabled to avoid problems for existing sites. Should this need to be changed, see the comments in fieldable_panels_panes_update_7112 for instructions.');
+  }
+  else {
+    return t('The FPP locking option was set already, so it has not been touched.');
+  }
+}
+
+/**
+ * Update all Panelizer displays to point non-reusable FPPs to the vid instead
+ * of the fpid.
+ */
+function fieldable_panels_panes_update_7112(&$sandbox) {
+  if (!module_exists('panelizer')) {
+    return t('Panelizer is not installed, so nothing to do.');
+  }
+
+  // This won't as-is work for many sites because the 'fpp_revision_locking'
+  // variable won't be defined before it's checked for. The simplest approach
+  // is to manually rerun the updates.
+  //
+  // /**
+  //  * Enable the FPP revision locking feature.
+  //  */
+  // function MYMODULE_update_7100() {
+  //   variable_set('fpp_revision_locking', 'lock');
+  // }
+  //
+  // /**
+  //  * Rerun Fieldable Panels Panes update 7112.
+  //  */
+  // function MYMODULE_update_7101(&$sandbox) {
+  //   return fieldable_panels_panes_update_7112($sandbox);
+  // }
+  //
+  //
+  // A more correct approach is to use hook_update_dependencies to ensure that
+  // the updates happen in the correct order. This may not work because if the
+  // hook implementation is newly added to the module it won't be recognized
+  // until the caches are cleared, which may not happen until after the updates
+  // are ran, thus the updates not running in the correct order.
+  //
+  // /**
+  //  * Implements hook_update_dependencies().
+  //  */
+  // function MYMODULE_update_dependencies() {
+  //   // Make sure that update 7100 below runs *after* Fieldable Panels Pane
+  //   // update 7111 and *before* Fieldable Panels Pane update 7112, that way
+  //   // the FPP 'lock' option will be enabled when the Panelizer updates are
+  //   // started.
+  //   $dependencies['MYMODULE'][7100] = array(
+  //     'fieldable_panels_panes' => 7111,
+  //   );
+  //   $dependencies['fieldable_panels_panes'][7112] = array(
+  //     'MYMODULE' => 7100,
+  //   );
+  //   return $dependencies;
+  // }
+  //
+  // /**
+  //  * Enable the FPP revision locking feature.
+  //  */
+  // function MYMODULE_update_7100() {
+  //   variable_set('fpp_revision_locking', 'lock');
+  // }
+  //
+  //
+  // An alternative solution would be to rerun the updates.
+
+  if (variable_get('fpp_revision_locking', 'lock') != 'lock') {
+    return t('Pane locking is not enabled, so nothing to do.');
+  }
+
+  // Update all Panelizer displays.
+
+  // The first time through, work out how many records need to be updated.
+  if (!isset($sandbox['progress'])) {
+    $sandbox['progress'] = 0;
+
+    // Total records that must be processed.
+    $sandbox['max'] = db_query("SELECT DISTINCT fpp.fpid as fpid, fpp.vid as vid
+      FROM {fieldable_panels_panes} fpp
+      INNER JOIN {panels_pane} pp
+        ON fpp.fpid = SUBSTRING_INDEX(pp.subtype, ':', -1)
+      INNER JOIN {panelizer_entity} pe
+        ON pe.did = pp.did
+      WHERE (pp.subtype LIKE 'fpid:%' OR pp.subtype LIKE 'current:%')
+        AND fpp.reusable != 1
+      ORDER BY fpp.fpid")->rowCount();
+
+    // If there's nothing to do, bail early.
+    if (empty($sandbox['max'])) {
+      return t('No panels needed to be updated.');
+    }
+  }
+
+  // Do the updates in small batches.
+  $limit = 10;
+
+  // Get a list of all FPIDs for Panelizer displays.
+  $results = db_query_range("SELECT DISTINCT fpp.fpid as fpid, fpp.vid as vid
+    FROM {fieldable_panels_panes} fpp
+    INNER JOIN {panels_pane} pp
+      ON fpp.fpid = SUBSTRING_INDEX(pp.subtype, ':', -1)
+    INNER JOIN {panelizer_entity} pe
+      ON pe.did = pp.did
+    WHERE (pp.subtype LIKE 'fpid:%' OR pp.subtype LIKE 'current:%')
+      AND fpp.reusable != 1
+    ORDER BY fpp.fpid", 0, $limit);
+
+  // Loop through the FPPs.
+  foreach ($results as $record) {
+    // Update the 'fpid:' and 'current:' records to use 'vid:'; don't bother
+    // checking if the record exists first because there's no down side to
+    // running this query immediately.
+    $query = db_update('panels_pane')
+      ->fields(array('subtype' => 'vid:' . $record->vid))
+      ->condition('subtype', 'fpid:' . $record->fpid)
+      ->execute();
+    $query = db_update('panels_pane')
+      ->fields(array('subtype' => 'vid:' . $record->vid))
+      ->condition('subtype', 'current:' . $record->fpid)
+      ->execute();
+
+    // Increment the progress counter.
+    $sandbox['progress']++;
+  }
+
+  // Done yet?
+  $sandbox['#finished'] = empty($sandbox['max']) ? TRUE : ($sandbox['progress'] / $sandbox['max']);
+
+  if ($sandbox['#finished'] === TRUE) {
+    return t('Updated @count record(s) to use the new locking system.', array('@count' => $sandbox['max']));
+  }
+}
+
+/**
+ * Update all Panel Nodes displays to point non-reusable FPPs to the vid instead
+ * of the fpid.
+ */
+function fieldable_panels_panes_update_7113() {
+  if (!module_exists('panels_node')) {
+    return t('Panel Nodes is not installed, so nothing to do.');
+  }
+
+  // This won't as-is work for many sites because the 'fpp_revision_locking'
+  // variable won't be defined before it's checked for. The simplest approach
+  // is to manually rerun the updates.
+  //
+  // /**
+  //  * Enable the FPP revision locking feature.
+  //  */
+  // function MYMODULE_update_7100() {
+  //   variable_set('fpp_revision_locking', 'lock');
+  // }
+  //
+  // /**
+  //  * Rerun Fieldable Panels Panes update 7113.
+  //  */
+  // function MYMODULE_update_7101(&$sandbox) {
+  //   return fieldable_panels_panes_update_7113($sandbox);
+  // }
+  //
+  //
+  // A more correct approach is to use hook_update_dependencies to ensure that
+  // the updates happen in the correct order. This may not work because if the
+  // hook implementation is newly added to the module it won't be recognized
+  // until the caches are cleared, which may not happen until after the updates
+  // are ran, thus the updates not running in the correct order.
+  //
+  // /**
+  //  * Implements hook_update_dependencies().
+  //  */
+  // function MYMODULE_update_dependencies() {
+  //   // Make sure that update 7100 below runs *after* Fieldable Panels Pane
+  //   // update 7111 and *before* Fieldable Panels Pane update 7113, that way
+  //   // the FPP 'lock' option will be enabled when the Panelizer updates are
+  //   // started.
+  //   $dependencies['MYMODULE'][7100] = array(
+  //     'fieldable_panels_panes' => 7111,
+  //   );
+  //   $dependencies['fieldable_panels_panes'][7113] = array(
+  //     'MYMODULE' => 7100,
+  //   );
+  //   return $dependencies;
+  // }
+  //
+  // /**
+  //  * Enable the FPP revision locking feature.
+  //  */
+  // function MYMODULE_update_7100() {
+  //   variable_set('fpp_revision_locking', 'lock');
+  // }
+  //
+  //
+  // An alternative solution would be to rerun the updates.
+
+  if (variable_get('fpp_revision_locking', 'lock') != 'lock') {
+    return t('Pane locking is not enabled, so nothing to do.');
+  }
+
+  // The first time through, work out how many records need to be updated.
+  if (!isset($sandbox['progress'])) {
+    $sandbox['progress'] = 0;
+
+    // Total records that must be processed.
+    $sandbox['max'] = db_query("SELECT DISTINCT fpp.fpid as fpid, fpp.vid as vid
+      FROM {fieldable_panels_panes} fpp
+      INNER JOIN {panels_pane} pp
+        ON fpp.fpid = SUBSTRING_INDEX(pp.subtype, ':', -1)
+      INNER JOIN {panels_node} pn
+        ON pn.did = pp.did
+      WHERE (pp.subtype LIKE 'fpid:%' OR pp.subtype LIKE 'current:%')
+        AND fpp.reusable != 1
+      ORDER BY fpp.fpid")->rowCount();
+
+    // If there's nothing to do, bail early.
+    if (empty($sandbox['max'])) {
+      return t('No panels needed to be updated.');
+    }
+  }
+
+  // Do the updates in small batches.
+  $limit = 10;
+
+  // Get a list of all FPIDs for Panel Nodes displays.
+  $results = db_query_range("SELECT DISTINCT fpp.fpid as fpid, fpp.vid as vid
+    FROM {fieldable_panels_panes} fpp
+    INNER JOIN {panels_pane} pp
+      ON fpp.fpid = SUBSTRING_INDEX(pp.subtype, ':', -1)
+    INNER JOIN {panels_node} pn
+      ON pn.did = pp.did
+    WHERE (pp.subtype LIKE 'fpid:%' OR pp.subtype LIKE 'current:%')
+      AND fpp.reusable != 1
+    ORDER BY fpp.fpid", 0, $limit);
+
+  // Loop through the FPPs.
+  foreach ($results as $record) {
+    // Update the 'fpid:' and 'current:' records to use 'vid:'; don't bother
+    // checking if the record exists first because there's no down side to
+    // running this query immediately.
+    $query = db_update('panels_pane')
+      ->fields(array('subtype' => 'vid:' . $record->vid))
+      ->condition('subtype', 'fpid:' . $record->fpid)
+      ->execute();
+    $query = db_update('panels_pane')
+      ->fields(array('subtype' => 'vid:' . $record->vid))
+      ->condition('subtype', 'current:' . $record->fpid)
+      ->execute();
+
+    // Increment the progress counter.
+    $sandbox['progress']++;
+  }
+
+  // Done yet?
+  $sandbox['#finished'] = empty($sandbox['max']) ? TRUE : ($sandbox['progress'] / $sandbox['max']);
+
+  if ($sandbox['#finished'] === TRUE) {
+    return t('Updated @count record(s) to use the new locking system.', array('@count' => $sandbox['max']));
+  }
+}
+
+/**
+ * Restore the default FPP bundle that may have been purged in update 7108.
+ */
+function incae_custom_panes_update_7114() {
+  if (!variable_get('fieldable_panels_panes_skip_default_type', FALSE)) {
+    // Check if the FPP type exists.
+    $found = db_select('fieldable_panels_pane_type', 'fppt')
+      ->fields('fppt', 'name')
+      ->condition('name', 'fieldable_panels_pane')
+      ->execute()
+      ->fetchField();
+    if (empty($found)) {
+      ctools_include('export');
+      $item = ctools_export_crud_new('fieldable_panels_pane_type');
+      $item->name = 'fieldable_panels_pane';
+      $item->title = t('Panels Pane');
+      ctools_export_crud_save('fieldable_panels_pane_type', $item);
+      return t('The default Fieldable Panels Pane entity type has been recovered.');
+    }
+  }
+}
diff --git a/profiles/wcm_base/modules/contrib/fieldable_panels_panes/fieldable_panels_panes.module b/profiles/wcm_base/modules/contrib/fieldable_panels_panes/fieldable_panels_panes.module
index 1327d28bce8dcb89cf0480b46bc509535bcb5238..6c2f9b7e46fbb1c8701e79ef38ac3a9c48f98c23 100644
--- a/profiles/wcm_base/modules/contrib/fieldable_panels_panes/fieldable_panels_panes.module
+++ b/profiles/wcm_base/modules/contrib/fieldable_panels_panes/fieldable_panels_panes.module
@@ -436,6 +436,14 @@ function fieldable_panels_panes_menu() {
     'context' => MENU_CONTEXT_PAGE | MENU_CONTEXT_INLINE,
   ) + $base;
 
+  // Settings.
+  $items['admin/structure/fieldable-panels-panes/settings'] = array(
+    'title' => 'Settings',
+    'page callback' => 'drupal_get_form',
+    'page arguments' => array('fieldable_panels_panes_settings'),
+    'type' => MENU_LOCAL_TASK,
+  ) + $base;
+
   return $items;
 }
 
@@ -576,14 +584,17 @@ function fieldable_panels_panes_panels_dashboard_blocks(&$vars) {
   $rows = array();
 
   foreach (ctools_export_crud_load_all('fieldable_panels_pane_type') as $type) {
-    $rows[] = array(
+    $items = array(
       $type->title,
       l(t('List'), 'admin/structure/fieldable-panels-panes/' . $type->name),
       l(t('Edit'), 'admin/structure/fieldable-panels-panes/' . $type->name . '/edit'),
       l(t('Add'), 'admin/structure/fieldable-panels-panes/' . $type->name . '/add'),
-      l(t('Manage Fields'), 'admin/structure/fieldable-panels-panes/' . $type->name . '/fields'),
-      l(t('Manage Display'), 'admin/structure/fieldable-panels-panes/' . $type->name . '/display'),
     );
+    if (module_exists('field_ui')) {
+      $items[] = l(t('Manage Fields'), 'admin/structure/fieldable-panels-panes/' . $type->name . '/fields');
+      $items[] = l(t('Manage Display'), 'admin/structure/fieldable-panels-panes/' . $type->name . '/display');
+    }
+    $rows[] = $items;
 
     // Only display 10.
     if (++$count >= 10) {
@@ -822,6 +833,81 @@ function fieldable_panels_panes_views_api() {
   );
 }
 
+// -------------------------------------------------------------------------
+// Block hooks.
+
+/**
+ * Implements hook_block_info().
+ */
+function fieldable_panels_panes_block_info() {
+  $blocks = array();
+  // Get array of exposed FPP bundles.
+  $bundles = fieldable_panels_panes_exposed_bundles();
+
+  if (variable_get('fpp_blocks_expose', FALSE) == TRUE) {
+    // Get all reusable entities if $bundles array is empty.
+    if (empty($bundles)) {
+      $ids = db_query('SELECT fpid FROM {fieldable_panels_panes} WHERE reusable = 1')->fetchCol();
+    }
+    // Get reusable entities of selected FPP bundles if $bundles array is not
+    // empty.
+    else {
+      $ids = array();
+      foreach ($bundles as $bundle => $info) {
+        $bundle_ids = db_query('SELECT fpid FROM {fieldable_panels_panes} WHERE reusable = 1 AND bundle = :bundle', array(':bundle' => $bundle))->fetchCol();
+        $ids = array_merge($ids, $bundle_ids);
+      }
+    }
+    $entities = fieldable_panels_panes_load_multiple($ids);
+    foreach ($entities as $entity) {
+      $blocks[$entity->fpid]['info'] = 'FPP (' . $entity->bundle . '): ' . entity_label('fieldable_panels_pane', $entity);
+    }
+  }
+
+  return $blocks;
+}
+
+/**
+ * Implements hook_block_view().
+ */
+function fieldable_panels_panes_block_view($delta = '') {
+  $block = array();
+  // Get array of exposed FPP bundles.
+  $bundles = fieldable_panels_panes_exposed_bundles();
+
+  if (variable_get('fpp_blocks_expose', FALSE) == TRUE) {
+    $entity = fieldable_panels_panes_load($delta);
+    $bundle = $entity->bundle;
+
+    $block['subject'] = '';
+    $block['content'] = '';
+
+    // Render block if its FPP bundle is exposed and block is reusable.
+    if ((array_key_exists($bundle, $bundles) || empty($bundles)) && $entity->reusable == TRUE) {
+      $content = fieldable_panels_panes_view($entity);
+      $block['subject'] = check_plain($entity->title);
+      $block['content'] = $content;
+    }
+  }
+  return $block;
+}
+
+/**
+ * Return array of FPP bundles exposed as blocks.
+ */
+function fieldable_panels_panes_exposed_bundles() {
+  // Get array of all FPP bundles and unset bundles not exposed as blocks.
+  $bundles = fieldable_panels_panes_get_bundle_labels();
+
+  foreach ($bundles as $bundle => $info) {
+    $expose = variable_get('fpp_expose_' . $bundle, FALSE);
+    if ($expose == FALSE) {
+      unset($bundles[$bundle]);
+    }
+  }
+  return $bundles;
+}
+
 // -------------------------------------------------------------------------
 // Theming
 
@@ -848,10 +934,15 @@ function fieldable_panels_panes_preprocess_panels_pane(&$vars) {
     if (!empty($vars['content']['#fieldable_panels_pane']) && is_object($vars['content']['#fieldable_panels_pane'])) {
       $entity = $vars['content']['#fieldable_panels_pane'];
       if (!empty($entity->link) && !empty($vars['title'])) {
-        $vars['title'] = l($vars['title'], $entity->path);
+        $vars['title'] = l($vars['title'], $entity->path, array('html' => TRUE));
       }
       ctools_include('cleanstring');
       $vars['classes_array'][] = 'pane-bundle-' . ctools_cleanstring($entity->bundle, array('lower case' => TRUE));
+
+      // Add pane-fpid-[fpid] class when referenced by revision ID.
+      if (strpos($vars['pane']->subtype, 'vid') === 0) {
+        $vars['classes_array'][] = 'pane-fpid-' . $vars['content']['#fieldable_panels_pane']->fpid;
+      }
     }
   }
 }
@@ -919,8 +1010,12 @@ function fieldable_panels_panes_load_from_subtype($subtype_name) {
  * Properly load the entity via $subtype_name.
  *
  * @param string $subtype_name
- *   A string combining an indicator of the type of ID, e.g. 'fpid', 'vid' or
- *   'vuuid', and an integer ID, separated by a colon; e.g. "fpid:123".
+ *   A string combining an indicator of the type of ID, e.g. 'fpid', 'vid',
+ *   'uuid', 'vuuid' or 'current, and an integer ID, separated by a colon; e.g.
+ *   "fpid:123". If the type is 'current' the newest revision will be loaded,
+ *   'fpid' and 'uuid' will load the revision considered best, 'vid' and 'vuuid'
+ *   will load a specific revision. Both 'uuid' and 'vuuid' require the UUID
+ *   module to be present.
  *
  * @return object
  *   The requested FPP object.
@@ -939,12 +1034,25 @@ function fieldable_panels_panes_load_from_subtype_force($subtype_name) {
     }
   }
 
+  // UUID integration for revisions.
+  elseif ($type == 'vuuid' && module_exists('uuid')) {
+   $vids = entity_get_id_by_uuid('fieldable_panels_pane', array($id), TRUE);
+    if ($vids && $content = entity_load('fieldable_panels_pane', FALSE, array('vid' => reset($vids)))) {
+      $object = reset($content);
+    }
+  }
   // If the type is 'vid' then a specific FPP revision is being requested.
   elseif ($type == 'vid') {
     $fpid = db_query('SELECT fpid FROM {fieldable_panels_panes_revision} WHERE vid = :vid', array(':vid' => $id))->fetchField();
     $object = fieldable_panels_panes_load($fpid, $id);
   }
 
+  // Load up the current revision.
+  elseif ($type == 'current') {
+    $vid = db_query('SELECT MAX(vid) FROM {fieldable_panels_panes_revision} WHERE fpid = :fpid', array(':fpid' => $id))->fetchField();
+   $object = fieldable_panels_panes_load($id, $vid);
+  }
+
   // The remaining scenario is that it's a regular FPP id, i.e. an "fpid", so
   // just load the object.
   else {
@@ -1138,10 +1246,20 @@ function fieldable_panels_panes_entity_edit_form($form, &$form_state) {
     '#weight' => -10,
   );
 
-  $form['language'] = array(
-    '#type' => 'value',
-    '#value' => $entity->language,
-  );
+  if (module_exists('locale')) {
+    $form['language'] = array(
+      '#type' => 'select',
+      '#title' => t('Language'),
+      '#default_value' => $entity->language,
+      '#options' => array(LANGUAGE_NONE => t('Language neutral')) + locale_language_list('name'),
+    );
+  }
+  else {
+    $form['language'] = array(
+      '#type' => 'value',
+      '#value' => $entity->language,
+    );
+  }
 
   $form['link'] = array(
     '#type' => 'container',
@@ -1176,14 +1294,14 @@ function fieldable_panels_panes_entity_edit_form($form, &$form_state) {
     '#weight' => 99,
   );
 
-  $form['reusable'] = array(
+  $form['admin'] = array(
     '#type' => 'fieldset',
-    '#title' => t('Reusability'),
+    '#title' => t('Admin'),
     '#collapsible' => TRUE,
-    '#collapsed' => empty($entity->reusable),
+    '#collapsed' => empty($entity->admin),
     '#group' => 'additional_settings',
     '#attributes' => array(
-      'class' => array('fieldable-pane-pane-form-reusable-information'),
+      'class' => array('fieldable-pane-pane-form-admin-information'),
     ),
     '#attached' => array(
       'js' => array(
@@ -1193,31 +1311,34 @@ function fieldable_panels_panes_entity_edit_form($form, &$form_state) {
     '#weight' => 10,
   );
 
-  $form['revision'] = array(
+  $form['reusable'] = array(
     '#type' => 'fieldset',
-    '#title' => t('Revision'),
+    '#title' => t('Reusability'),
     '#collapsible' => TRUE,
-    '#collapsed' => empty($entity->revision),
+    '#collapsed' => empty($entity->reusable),
     '#group' => 'additional_settings',
     '#attributes' => array(
-      'class' => array('fieldable-pane-pane-form-revision-information'),
+      'class' => array('fieldable-pane-pane-form-reusable-information'),
     ),
     '#attached' => array(
       'js' => array(
         'vertical-tabs' => drupal_get_path('module', 'fieldable_panels_panes') . '/fieldable_panels_panes.vertical-tabs.js',
       ),
     ),
-    '#weight' => 30,
+    '#weight' => 10,
+    // Cannot change this after the initial creation, but reusable FPPs can be
+    // have their category changed.
+    '#access' => empty($entity->fpid) || (!empty($entity->fpid) && !empty($entity->reusable)),
   );
 
-  if (empty($entity->fpid)) {
-    $form['revision']['#access'] = FALSE;
-  }
-
   $form['reusable']['reusable'] = array(
     '#type' => 'checkbox',
     '#title' => t('Make this entity reusable'),
     '#default_value' => $entity->reusable,
+    '#description' => t('A reusable pane may be used multiple times on the same page or on other pages. A non-reusable pane may not be added to another page once it is created and added to this page. This option may not be changed after the pane is created.'),
+    // It's dangerous to change an FPP's reusability after it is created, so
+    // this is disabled when editing existing FPPs.
+    '#disabled' => !empty($entity->fpid),
   );
 
   $form['reusable']['category'] = array(
@@ -1232,28 +1353,37 @@ function fieldable_panels_panes_entity_edit_form($form, &$form_state) {
     ),
   );
 
-  $form['reusable']['admin_title'] = array(
+  $form['admin']['admin_title'] = array(
     '#type' => 'textfield',
     '#title' => t('Administrative title'),
-    '#description' => t('The name this content will appear in the "Add content" modal.'),
+    '#description' => t("Title used for administrative purposes. Used to identify panes within admin pages."),
     '#default_value' => $entity->admin_title,
-    '#states' => array(
-      'visible' => array(
-        ':input[name="reusable"]' => array('checked' => TRUE),
-      ),
-    ),
   );
 
-  $form['reusable']['admin_description'] = array(
+  $form['admin']['admin_description'] = array(
     '#type' => 'textarea',
     '#title' => t('Administrative description'),
     '#description' => t('A description of what this content is, does or is for, for administrative use.'),
     '#default_value' => $entity->admin_description,
-    '#states' => array(
-      'visible' => array(
-        ':input[name="reusable"]' => array('checked' => TRUE),
+  );
+
+  $form['revision'] = array(
+    '#type' => 'fieldset',
+    '#title' => t('Revision'),
+    '#collapsible' => TRUE,
+    '#collapsed' => empty($entity->revision),
+    '#group' => 'additional_settings',
+    '#attributes' => array(
+      'class' => array('fieldable-pane-pane-form-revision-information'),
+    ),
+    '#attached' => array(
+      'js' => array(
+        'vertical-tabs' => drupal_get_path('module', 'fieldable_panels_panes') . '/fieldable_panels_panes.vertical-tabs.js',
       ),
     ),
+    '#weight' => 30,
+    // Don't show the revision options if this is a new FPP.
+    '#access' => !empty($entity->fpid),
   );
 
   $form['revision']['revision'] = array(
@@ -1262,15 +1392,26 @@ function fieldable_panels_panes_entity_edit_form($form, &$form_state) {
     '#default_value' => 1,
   );
 
-  if (!user_access('administer fieldable panels panes') || $entity->vid != $entity->current_vid) {
+  // Force a new revision to be created if the user does not have 'admin FPP'
+  // access, or the 'lock' mode was enabled and this is not a reusable FPP.
+  if (!user_access('administer fieldable panels panes')
+      || $entity->vid != $entity->current_vid
+      || (!empty($entity->fpid) && empty($entity->reusable)
+        && variable_get('fpp_revision_locking', 'lock') == 'lock')) {
     $form['revision']['revision']['#disabled'] = TRUE;
     $form['revision']['revision']['#value'] = TRUE;
+
+    // Inform the user that the pane will be locked.
+    if (!empty($entity->fpid) && empty($entity->reusable)
+        && variable_get('fpp_revision_locking', 'lock') == 'lock') {
+      $form['revision']['revision']['#description'] = t('A new revision will be created because this pane is non-reusable and the locking mode has been enabled.');
+    }
   }
 
   $form['revision']['log'] = array(
     '#type' => 'textarea',
     '#title' => t('Log message'),
-    '#description' => t('Provide an explanation of the changes you are making. This will help other authors understand your motivations.'),
+    '#description' => t('Provide an explanation of the changes being made.'),
     '#default_value' => '',
     '#states' => array(
       'visible' => array(
@@ -1443,3 +1584,57 @@ function fieldable_panels_panes_file_download_access($field, $entity_type, $enti
     return ctools_access($entity->view_access, fieldable_panels_panes_get_base_context($entity));
   }
 }
+
+/**
+ * Determine if an FPP's revision should be locked.
+ *
+ * @param object $entity
+ *   The FPP object being examined.
+ *
+ * @return bool
+ */
+function fieldable_panels_panes_revision_is_lockable($entity) {
+  $lock = variable_get('fpp_revision_locking', 'lock');
+
+  // Only non-reusable FPPs will be lockable.
+  if ($lock == 'lock') {
+    $revision_context_aware = empty($entity->reusable);
+  }
+
+  // Legacy mode, no revisions handling.
+  else {
+    $revision_context_aware = FALSE;
+  }
+
+  return $revision_context_aware;
+}
+
+/**
+ * Implements hook_entity_insert().
+ */
+function fieldable_panels_panes_entity_insert($entity, $type) {
+  if ($type == 'fieldable_panels_pane') {
+    $cid = "fieldable_panels_panes_{$entity->bundle}_content_type";
+    cache_clear_all($cid, 'cache_panels');
+  }
+}
+
+/**
+ * Implements hook_entity_update().
+ */
+function fieldable_panels_panes_entity_update($entity, $type) {
+  if ($type == 'fieldable_panels_pane') {
+    $cid = "fieldable_panels_panes_{$entity->bundle}_content_type";
+    cache_clear_all($cid, 'cache_panels');
+  }
+}
+
+/**
+ * Implements hook_entity_delete().
+ */
+function fieldable_panels_panes_entity_delete($entity, $type) {
+  if ($type == 'fieldable_panels_pane') {
+    $cid = "fieldable_panels_panes_{$entity->bundle}_content_type";
+    cache_clear_all($cid, 'cache_panels');
+  }
+}
diff --git a/profiles/wcm_base/modules/contrib/fieldable_panels_panes/fieldable_panels_panes.vertical-tabs.js b/profiles/wcm_base/modules/contrib/fieldable_panels_panes/fieldable_panels_panes.vertical-tabs.js
index cd9322e4e51e3b6632629e2f8684388310d2324d..36203d5011607d821ea705ac195f47b11156cb7a 100644
--- a/profiles/wcm_base/modules/contrib/fieldable_panels_panes/fieldable_panels_panes.vertical-tabs.js
+++ b/profiles/wcm_base/modules/contrib/fieldable_panels_panes/fieldable_panels_panes.vertical-tabs.js
@@ -9,8 +9,6 @@ Drupal.behaviors.fieldablePanelPaneFieldsetSummaries = {
         summary.push(Drupal.t('Reusable: Yes'));
         var category = $('input[name="category"]', context).val() || Drupal.t('None');
         summary.push(Drupal.t('Category: @value', { '@value': category }));
-        var admin_title = $('input[name="admin_title"]', context).val() || Drupal.t('None');
-        summary.push(Drupal.t('Admin title: @value', { '@value': admin_title }));
       }
       else {
         summary.push(Drupal.t('Reusable: No'));
@@ -19,6 +17,11 @@ Drupal.behaviors.fieldablePanelPaneFieldsetSummaries = {
       return summary.join('<br />');
     });
 
+    $('fieldset.vertical-tabs-pane.fieldable-pane-pane-form-admin-information', context).drupalSetSummary(function (context) {
+      var admin_title = $('input[name="admin_title"]', context).val() || Drupal.t('None');
+      return Drupal.t('Admin title: @value', { '@value': admin_title });
+    });
+
     $('fieldset.vertical-tabs-pane.fieldable-pane-pane-form-revision-information', context).drupalSetSummary(function (context) {
       var revisionCheckbox = $('input[name="revision"]', context);
 
diff --git a/profiles/wcm_base/modules/contrib/fieldable_panels_panes/includes/PanelsPaneController.class.php b/profiles/wcm_base/modules/contrib/fieldable_panels_panes/includes/PanelsPaneController.class.php
index 7a1d745638db0ce99306c28d2dc59c6b51cad606..6c7f1ea817a722c6752a2bbbac0ce8dd8aedf4ea 100644
--- a/profiles/wcm_base/modules/contrib/fieldable_panels_panes/includes/PanelsPaneController.class.php
+++ b/profiles/wcm_base/modules/contrib/fieldable_panels_panes/includes/PanelsPaneController.class.php
@@ -168,6 +168,9 @@ class PanelsPaneController extends DrupalDefaultEntityController {
         module_invoke_all('entity_insert', $entity, 'fieldable_panels_pane');
       }
 
+      // Clear the appropriate caches for this object.
+      entity_get_controller('fieldable_panels_pane')->resetCache(array($entity->fpid));
+
       return $entity;
     }
     catch (Exception $e) {
@@ -197,7 +200,12 @@ class PanelsPaneController extends DrupalDefaultEntityController {
     $entity->uid = $uid;
     // Update the existing revision if specified.
     if (!empty($entity->vid)) {
-      drupal_write_record('fieldable_panels_panes_revision', $entity, 'vid');
+      if (module_exists('uuid')) {
+        drupal_write_record('fieldable_panels_panes_revision', $entity, 'vuuid');
+      }
+      else {
+        drupal_write_record('fieldable_panels_panes_revision', $entity, 'vid');
+      }
     }
     else {
       // Otherwise insert a new revision. This will automatically update $entity
@@ -231,7 +239,10 @@ class PanelsPaneController extends DrupalDefaultEntityController {
     // behavior (for example, to restrict contextual links to certain view
     // modes) by implementing hook_fieldable_panels_pane_view_alter().
     if (!empty($entity->fpid) && !($view_mode == 'full' && fieldable_panels_pane_is_page($entity))) {
-      $build['#contextual_links']['fieldable_panels_panes'] = array('admin/structure/fieldable-panels-panes/view', array($entity->fpid));
+      // Allow the contextual links to be controlled from the settings page.
+      if (!variable_get('fpp_hide_contextual_links', FALSE)) {
+        $build['#contextual_links']['fieldable_panels_panes'] = array('admin/structure/fieldable-panels-panes/view', array($entity->fpid));
+      }
     }
 
     // Allow modules to modify the structured pane.
diff --git a/profiles/wcm_base/modules/contrib/fieldable_panels_panes/includes/admin.inc b/profiles/wcm_base/modules/contrib/fieldable_panels_panes/includes/admin.inc
index fa62511515aec92b1d6f5332f906b6a3d209d4fe..234f8a2c46cef21ca4b4d3e0a980e65cd50b0b93 100644
--- a/profiles/wcm_base/modules/contrib/fieldable_panels_panes/includes/admin.inc
+++ b/profiles/wcm_base/modules/contrib/fieldable_panels_panes/includes/admin.inc
@@ -5,6 +5,73 @@
  * Contains administrative pages and functions for fieldable entity panes.
  */
 
+/**
+ * Page callback for settings page.
+ */
+function fieldable_panels_panes_settings() {
+  $form = array();
+
+  $form['fpp_revision_locking'] = array(
+    '#type' => 'radios',
+    '#title' => t('Should FPP CTools content panes reference FPP entities by entity ID or revision ID?'),
+    '#description' => t('For example, a panelized entity can revert the entity to previous revision and FPPs will also revert if they are referenced by revision ID. This also allows for editorial workflows using e.g. the Workbench Moderation or Revisioning modules.'),
+    '#options' => array(
+      'legacy' => t('Legacy: Use entity ID for all FPPs.'),
+      'lock' => t('Recommended: Use revision ID for non-reusable FPPs only; will also force each FPP update to create a new revision.'),
+    ),
+    '#default_value' => variable_get('fpp_revision_locking', 'lock'),
+  );
+
+  $form['fpp_hide_contextual_links'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Hide the FPP contextual menus?'),
+    '#description' => t('Being able to edit FPPs directly can cause problems with the editorial workflows when using e.g. Panelizer.'),
+    '#default_value' => variable_get('fpp_hide_contextual_links', FALSE),
+    '#disabled' => !module_exists('contextual'),
+  );
+
+  $form['fpp_blocks_expose'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Make fieldable panels panes available as blocks'),
+    '#description' => t('Fieldable panels panes that are reusable will be made available as blocks.'),
+    '#default_value' => variable_get('fpp_blocks_expose', FALSE),
+  );
+  $form['bundles'] = array(
+    '#type' => 'fieldset',
+    '#title' => t('FPP Types Exposed as Blocks'),
+    '#description' => t('Select FPP types to be exposed as blocks. If none is selected, then all FPP types will be exposed as blocks.'),
+    '#collapsible' => TRUE,
+    '#collapsed' => TRUE,
+    '#states' => array(
+      'visible' => array(
+        ':input[name="fpp_blocks_expose"]' => array('checked' => TRUE),
+      ),
+    ),
+  );
+
+  // Render checkbox for each FPP bundle if any FPP bundles exist.
+  $bundles = fieldable_panels_panes_get_bundle_labels();
+  if (!empty($bundles)) {
+    foreach ($bundles as $bundle => $info) {
+      $form['bundles']['fpp_expose_' . $bundle] = array(
+        '#type' => 'checkbox',
+        '#title' => $info . ' (' . $bundle . ')',
+        '#default_value' => variable_get('fpp_expose_' . $bundle, FALSE),
+      );
+    }
+  }
+
+  // Remove fieldset description and add markup if no FPP bundles exist.
+  else {
+    $form['bundles']['empty'] = array(
+      '#markup' => t('<p>No FPP types exist.</p>'),
+    );
+    $form['bundles']['#description'] = NULL;
+  }
+
+  return system_settings_form($form);
+}
+
 /**
  * List all entities for the given type.
  */
diff --git a/profiles/wcm_base/modules/contrib/fieldable_panels_panes/plugins/content_types/fieldable_panels_pane.inc b/profiles/wcm_base/modules/contrib/fieldable_panels_panes/plugins/content_types/fieldable_panels_pane.inc
index aa06879714c42f04879bf81403e02ca5016c371e..ee10fd630df7ba81742697acb59a4306dc021d4b 100644
--- a/profiles/wcm_base/modules/contrib/fieldable_panels_panes/plugins/content_types/fieldable_panels_pane.inc
+++ b/profiles/wcm_base/modules/contrib/fieldable_panels_panes/plugins/content_types/fieldable_panels_pane.inc
@@ -101,15 +101,59 @@ function fieldable_panels_panes_fieldable_panels_pane_content_type_content_type(
 function fieldable_panels_panes_fieldable_panels_pane_content_type_content_types() {
   $types = _fieldable_panels_panes_default_content_type();
 
-  $ids = db_query('SELECT fpid FROM {fieldable_panels_panes} WHERE reusable = 1')->fetchCol();
-  if (!empty($ids)) {
+  // The current function is called as part of the standard panel pane rendering
+  // pipeline. To prevent a full list of FPP entities from being generated every
+  // time that a panel is rendered, generate the list only when a request is
+  // made from an administrative URL.
+  // @see https://www.drupal.org/node/2374577
+  if (path_is_admin(current_path()) || preg_match('/panels/i', current_path())) {
+    $fpp_info = entity_get_info('fieldable_panels_pane');
+    foreach ($fpp_info['bundles'] as $bundle_name => $bundle) {
+      $ids = db_query('SELECT fpid FROM {fieldable_panels_panes} WHERE reusable = 1 AND bundle = :bundle', array(':bundle' => $bundle_name))->fetchCol();
+      if (!empty($ids)) {
+        $types = array_merge($types, fieldable_panels_panes_build_content_type_info($bundle_name, $ids));
+      }
+    }
+  }
+
+  return $types;
+}
+
+/**
+ * Returns a list of all reusable FPP entities of a given bundle.
+ *
+ * @param $bundle
+ *   Fieldable panel pane bundle machine name.
+ * @param $ids
+ *   An array of fieldable panel pane entity ids.
+ *
+ * @return array
+ *   An array of content type information for each fpp entity.
+ */
+function fieldable_panels_panes_build_content_type_info($bundle, $ids) {
+  $types = array();
+  $cid = "fieldable_panels_panes_{$bundle}_content_type";
+
+  if (($cache = cache_get($cid, 'cache_panels')) && !empty($cache->data)) {
+    $types = $cache->data;
+  }
+  else {
     $entities = fieldable_panels_panes_load_multiple($ids);
     if (!empty($entities)) {
-      foreach ($entities as $entity) {
+      foreach ($entities as $entity_id => $entity) {
         $subtype = _fieldable_panels_panes_custom_content_type($entity);
         $types[$subtype['name']] = $subtype;
+
+        // Re-key $entities such that $types and $entities are keyed
+        // identically.
+        $entities[$subtype['name']] = $entity;
+        unset($entities[$entity_id]);
       }
     }
+
+    // Trigger hook_fieldable_panels_panes_content_types_alter().
+    drupal_alter('fieldable_panels_panes_content_types', $types, $bundle, $entities);
+    cache_set($cid, $types, 'cache_panels');
   }
 
   return $types;
@@ -152,21 +196,42 @@ function fieldable_panels_panes_fieldable_panels_pane_content_type_render($subty
 }
 
 /**
- * Callback to provide the administrative title of the custom content.
+ * Gets the admin title from the entity.
  */
-function fieldable_panels_panes_fieldable_panels_pane_content_type_admin_title($subtype, $conf) {
-  $entity = fieldable_panels_panes_load_from_subtype($subtype);
-
+function _fieldable_panels_panes_admin_title_from_entity($entity) {
   if (!empty($entity) && is_object($entity)) {
-    $output = !empty($entity->admin_title) ? $entity->admin_title : (!empty($entity->title) ? $entity->title : t('No title'));
+    if (!empty($entity->admin_title)) {
+      $output = $entity->admin_title;
+    }
+    elseif (!empty($entity->title)) {
+      $output = $entity->title;
+    }
+    else {
+      $output = entity_label('fieldable_panels_pane', $entity);
+    }
+    // Make sure no XSS strings go through the title.
+    $output = filter_xss($output);
   }
   else {
     $output = t('Deleted/removed entity pane');
   }
 
+  // Indicate when the FPP is reusable.
+  if (!empty($entity->reusable)) {
+    $output .= ' (' . t('reusable') . ')';
+  }
+
   return $output;
 }
 
+/**
+ * Callback to provide the administrative title of the custom content.
+ */
+function fieldable_panels_panes_fieldable_panels_pane_content_type_admin_title($subtype, $conf) {
+  $entity = fieldable_panels_panes_load_from_subtype($subtype);
+  return _fieldable_panels_panes_admin_title_from_entity($entity);
+}
+
 /**
  * Callback to provide administrative information for a fieldable panels pane.
  */
@@ -197,7 +262,8 @@ function fieldable_panels_panes_fieldable_panels_pane_content_type_edit_form($fo
   ctools_form_include_file($form_state, $form_state['plugin']['path'] . '/' . $form_state['plugin']['file']);
 
   $entity_info = entity_get_info('fieldable_panels_pane');
-  $view_mode_options = array();
+
+  // Show all of the available view modes.
   foreach ($entity_info['view modes'] as $mode => $option) {
     $view_mode_options[$mode] = $option['label'];
   }
@@ -255,18 +321,45 @@ function fieldable_panels_panes_fieldable_panels_pane_content_type_edit_form_sub
 
   fieldable_panels_panes_entity_edit_form_submit($form, $form_state);
 
-  // Sub type is not explicitly set, define it here.
-  if (module_exists('uuid') && isset($entity->uuid)) {
-    $entity_id = 'uuid:' . $entity->uuid;
+  // Determine how to handle revision locking.
+  $revision_context_aware = fieldable_panels_panes_revision_is_lockable($entity);
+
+  // If this is a new entity entity, or revision locking is enabled, look for a
+  // specific ID to use.
+  if (!empty($entity->is_new) || $revision_context_aware) {
+    // If UUID is available, use it.
+    if (module_exists('uuid') && isset($entity->uuid)) {
+      if ($revision_context_aware) {
+        $subtype = 'vuuid:' . $entity->vuuid;
+      }
+      else {
+        $subtype = 'uuid:' . $entity->uuid;
+      }
+    }
+
+    // Otherwise use the native ID values.
+    else {
+      if ($revision_context_aware) {
+        $subtype = 'vid:' . $entity->vid;
+      }
+      else {
+        $subtype = 'fpid:' . $entity->fpid;
+      }
+    }
   }
+
+  // The 'current' key will tell FPP to load up the current revision. This
+  // bypasses the entity cache on the FPP entity class and loads the revision
+  // that was just saved instead of the previous revision. This is only really
+  // relevant in Panels IPE administration or similar circumstances.
   else {
-    $entity_id = 'fpid:' . $entity->fpid;
+    $subtype = 'current:' . $entity->fpid;
   }
 
   // @todo: This won't work if $form_state does not contain 'pane' which could
   // theoretically happen in a non-Panels use case. Not that anybody uses this
   // outside of Panels.
-  $form_state['pane']->subtype = $entity_id;
+  $form_state['pane']->subtype = $subtype;
 }
 
 /**
@@ -312,18 +405,34 @@ function _fieldable_panels_panes_default_content_type() {
  */
 function _fieldable_panels_panes_custom_content_type($entity) {
   $info = array(
-    'title' => check_plain(entity_label('fieldable_panels_pane', $entity)),
+    'title' => _fieldable_panels_panes_admin_title_from_entity($entity),
     'description' => check_plain($entity->admin_description),
     'category' => $entity->category ? check_plain($entity->category) : t('Miscellaneous'),
     'all contexts' => TRUE,
     'icon' => 'icon_block_custom.png',
   );
 
+  // Determine how to handle revision locking.
+  $revision_context_aware = fieldable_panels_panes_revision_is_lockable($entity);
+
+  // If UUID is available, use it.
   if (module_exists('uuid') && isset($entity->uuid)) {
-    $info['name'] = 'uuid:' . $entity->uuid;
+    if ($revision_context_aware) {
+      $info['name'] = 'vuuid:' . $entity->vuuid;
+    }
+    else {
+      $info['name'] = 'uuid:' . $entity->uuid;
+    }
   }
+
+  // Otherwise use the native ID values.
   else {
-    $info['name'] = 'fpid:' . $entity->fpid;
+    if ($revision_context_aware) {
+      $info['name'] = 'vid:' . $entity->vid;
+    }
+    else {
+      $info['name'] = 'fpid:' . $entity->fpid;
+    }
   }
 
   $info['entity_id'] = $info['name'];
diff --git a/profiles/wcm_base/modules/contrib/fieldable_panels_panes/plugins/export_ui/fieldable_panels_pane.class.php b/profiles/wcm_base/modules/contrib/fieldable_panels_panes/plugins/export_ui/fieldable_panels_pane.class.php
index 399ad83fff102ecdcc3f02f5b2fbf526b9debfe7..2e7907624d2175fd4dedc32c0b54319828d32c6f 100644
--- a/profiles/wcm_base/modules/contrib/fieldable_panels_panes/plugins/export_ui/fieldable_panels_pane.class.php
+++ b/profiles/wcm_base/modules/contrib/fieldable_panels_panes/plugins/export_ui/fieldable_panels_pane.class.php
@@ -43,14 +43,16 @@ class fieldable_panels_pane extends ctools_export_ui {
         'title' => t('Export'),
         'href' => $base_path . '/' . $name . '/export',
       );
-      $operations['field'] = array(
-        'title' => t('Manage Fields'),
-        'href' => $base_path . '/' . $name . '/fields',
-      );
-      $operations['display'] = array(
-        'title' => t('Manage Display'),
-        'href' => $base_path . '/' . $name . '/display',
-      );
+      if (module_exists('field_ui')) {
+        $operations['field'] = array(
+          'title' => t('Manage Fields'),
+          'href' => $base_path . '/' . $name . '/fields',
+        );
+        $operations['display'] = array(
+          'title' => t('Manage Display'),
+          'href' => $base_path . '/' . $name . '/display',
+        );
+      }
     }
     return $operations;
   }
@@ -196,15 +198,16 @@ class fieldable_panels_pane extends ctools_export_ui {
             'title' => t('export'),
             'href' => 'admin/structure/fieldable-panels-panes/' . $bundle . '/export',
           );
-          $operations['fields'] = array(
-            'title' => t('manage fields'),
-            'href' => $this->field_admin_path($bundle, 'fields'),
-          );
-
-          $operations['display'] = array(
-            'title' => t('manage display'),
-            'href' => $this->field_admin_path($bundle, 'display'),
-          );
+          if (module_exists('field_ui')) {
+            $operations['fields'] = array(
+              'title' => t('manage fields'),
+              'href' => $this->field_admin_path($bundle, 'fields'),
+            );
+            $operations['display'] = array(
+              'title' => t('manage display'),
+              'href' => $this->field_admin_path($bundle, 'display'),
+            );
+          }
         }
 
         $ops = theme('links', array('links' => $operations, 'attributes' => array('class' => array('links', 'inline'))));
@@ -226,7 +229,7 @@ class fieldable_panels_pane extends ctools_export_ui {
   }
 
   /**
-   * Helper method to derive paths to field ui operations.
+   * Helper method to derive paths to field UI operations.
    */
   function field_admin_path($name, $op) {
     return _field_ui_bundle_admin_path('fieldable_panels_pane', $name) . '/' . $op;
diff --git a/profiles/wcm_base/modules/contrib/fieldable_panels_panes/plugins/views/fieldable_panels_panes.views.inc b/profiles/wcm_base/modules/contrib/fieldable_panels_panes/plugins/views/fieldable_panels_panes.views.inc
index 7c28b3a594d80a474109814d1b3539b4357001df..29f423caa37ffe15470e5dd20594317b0a871326 100644
--- a/profiles/wcm_base/modules/contrib/fieldable_panels_panes/plugins/views/fieldable_panels_panes.views.inc
+++ b/profiles/wcm_base/modules/contrib/fieldable_panels_panes/plugins/views/fieldable_panels_panes.views.inc
@@ -207,6 +207,17 @@ function fieldable_panels_panes_views_data() {
         'handler' => 'views_handler_filter_date',
       ),
     ),
+    'language' => array(
+      'title' => t('Language'),
+      'help' => t('The language of the entity.'),
+      'field' => array(
+        'handler' => 'fieldable_panels_panes_handler_field_language',
+        'click sortable' => TRUE,
+      ),
+      'filter' => array(
+        'handler' => 'fieldable_panels_panes_handler_filter_language',
+      ),
+    ),
     'view_entity' => array(
       'field' => array(
         'title' => t('Administrative link'),
diff --git a/profiles/wcm_base/modules/contrib/fieldable_panels_panes/plugins/views/fieldable_panels_panes_handler_field_language.inc b/profiles/wcm_base/modules/contrib/fieldable_panels_panes/plugins/views/fieldable_panels_panes_handler_field_language.inc
new file mode 100644
index 0000000000000000000000000000000000000000..7a004cbf4974ff8a7547142bf5e794860b8d9957
--- /dev/null
+++ b/profiles/wcm_base/modules/contrib/fieldable_panels_panes/plugins/views/fieldable_panels_panes_handler_field_language.inc
@@ -0,0 +1,46 @@
+<?php
+
+/**
+ * @file
+ * Definition of fieldable_panels_panes_handler_field_language.
+ */
+
+/**
+ * Field handler to translate a language into its readable form.
+ */
+class fieldable_panels_panes_handler_field_language extends views_handler_field_node {
+
+  /**
+   * {@inheritdoc}
+   */
+  function option_definition() {
+    $options = parent::option_definition();
+    $options['native_language'] = array('default' => FALSE, 'bool' => TRUE);
+
+    return $options;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  function options_form(&$form, &$form_state) {
+    parent::options_form($form, $form_state);
+    $form['native_language'] = array(
+      '#title' => t('Native language'),
+      '#type' => 'checkbox',
+      '#default_value' => $this->options['native_language'],
+      '#description' => t('If enabled, the native name of the language will be displayed'),
+    );
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  function render($values) {
+    $languages = views_language_list(empty($this->options['native_language']) ? 'name' : 'native');
+    $value = $this->get_value($values);
+    $value = isset($languages[$value]) ? $languages[$value] : '';
+    return $this->render_link($value, $values);
+  }
+
+}
diff --git a/profiles/wcm_base/modules/contrib/fieldable_panels_panes/plugins/views/fieldable_panels_panes_handler_filter_language.inc b/profiles/wcm_base/modules/contrib/fieldable_panels_panes/plugins/views/fieldable_panels_panes_handler_filter_language.inc
new file mode 100644
index 0000000000000000000000000000000000000000..767b8c1fb3bc2abadf09fe2457605f1d7bece10c
--- /dev/null
+++ b/profiles/wcm_base/modules/contrib/fieldable_panels_panes/plugins/views/fieldable_panels_panes_handler_filter_language.inc
@@ -0,0 +1,28 @@
+<?php
+/**
+ * @file
+ * Definition of fieldable_panels_panes_handler_filter_language.
+ */
+
+/**
+ * Filter by language.
+ */
+class fieldable_panels_panes_handler_filter_language extends views_handler_filter_in_operator {
+
+  /**
+   * {@inheritdoc}
+   */
+  function get_value_options() {
+    if (!isset($this->value_options)) {
+      $this->value_title = t('Language');
+      $languages = array(
+        '***CURRENT_LANGUAGE***' => t("Current user's language"),
+        '***DEFAULT_LANGUAGE***' => t("Default site language"),
+        LANGUAGE_NONE => t('No language')
+      );
+      $languages = array_merge($languages, views_language_list());
+      $this->value_options = $languages;
+    }
+  }
+
+}
diff --git a/profiles/wcm_base/modules/contrib/fieldable_panels_panes/tests/fpp.entity_form.test b/profiles/wcm_base/modules/contrib/fieldable_panels_panes/tests/fpp.entity_form.test
new file mode 100644
index 0000000000000000000000000000000000000000..79970c7ad5114e839da22dafebd80267a7031d12
--- /dev/null
+++ b/profiles/wcm_base/modules/contrib/fieldable_panels_panes/tests/fpp.entity_form.test
@@ -0,0 +1,172 @@
+<?php
+/**
+ * @file
+ * Tests for the Fieldable Panels Panes module to ensure the basic form works.
+ */
+
+class FppEntityFormTest extends FppTestHelper {
+  /**
+   * {@inheritdoc}
+   */
+  public static function getInfo() {
+    return array(
+      'name' => 'FPP tests',
+      'description' => 'Confirm that the entity form fields work as intended.',
+      'group' => 'FPP',
+    );
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  function setUp(array $modules = array()) {
+    $modules[] = 'fieldable_panels_panes';
+
+    parent::setUp($modules);
+
+    // Some default values to work with.
+    $this->bundle = 'fieldable_panels_pane';
+    $this->title = t('Test FPP');
+  }
+
+  /**
+   * Confirm that the basic form fields show on the 'add' form.
+   */
+  function testNewEntity() {
+    // Create a user with the admin permission.
+    $this->adminUser = $this->createAdminUser();
+
+    $this->drupalLogin($this->adminUser);
+
+    // Load the fpp-add form.
+    $this->drupalGet('admin/structure/fieldable-panels-panes/' . $this->bundle . '/add');
+    $this->assertResponse(200);
+
+    // Check all of the default fields.
+
+    // The basic title field.
+    $this->assertFieldByName('title');
+
+    // The "make title a link" option's fields.
+    $this->assertFieldByName('link');
+    $this->assertFieldByName('path');
+
+    // The admin title & description fields.
+    $this->assertFieldByName('admin_title');
+    $this->assertFieldByName('admin_description');
+
+    // By default all FPPs will be reusable.
+    $this->assertFieldByName('reusable');
+
+    // Because FPPs can be reusable they can be grouped in categories in the
+    // Panels admin UI.
+    $this->assertFieldByName('category');
+
+    // The language selector is not present because the Locale module is not
+    // enabled by default.
+    $this->assertNoFieldByName('language');
+
+    // The revision selector is disabled by default because you only don't
+    // create a new revision on a new object.
+    $this->assertNoFieldByName('revision');
+    $this->assertNoFieldByName('log');
+  }
+
+  /**
+   * Confirm that the edit form has the correct fields for reusable FPPs.
+   */
+  function testExistingReusable() {
+    // Create a user with the admin permission.
+    $this->adminUser = $this->createAdminUser();
+
+    $this->drupalLogin($this->adminUser);
+
+    // Create a reusable FPP.
+    $fpp = new StdClass();
+    $fpp->bundle = $this->bundle;
+    $fpp->title = $this->title;
+    $fpp->reusable = 1;
+    $saved_fpp = fieldable_panels_panes_save($fpp);
+
+    // Load the fpp-add form.
+    $this->drupalGet('admin/structure/fieldable-panels-panes/view/' . $fpp->fpid . '/edit');
+    $this->assertResponse(200);
+
+    // Check all of the fields that are suitable for a reusable FPP.
+
+    // The basic title field.
+    $this->assertFieldByName('title');
+
+    // The "make title a link" option's fields.
+    $this->assertFieldByName('link');
+    $this->assertFieldByName('path');
+
+    // The admin title & description fields.
+    $this->assertFieldByName('admin_title');
+    $this->assertFieldByName('admin_description');
+
+    // The 'reusable' option is not changable after the FPP's initial creation.
+    $this->assertNoFieldByName('reusable');
+
+    // Because FPPs can be reusable they can be grouped in categories in the
+    // Panels admin UI.
+    $this->assertFieldByName('category');
+
+    // The language selector is not present because the Locale module is not
+    // enabled by default.
+    $this->assertNoFieldByName('language');
+
+    // The revision fields are visible when editing a reusable FPP.
+    $this->assertFieldByName('revision');
+    $this->assertFieldByName('log');
+  }
+
+  /**
+   * Confirm that the edit form has the correct fields for non-reusable FPPs.
+   */
+  function testExistingNonReusable() {
+    // Create a user with the admin permission.
+    $this->adminUser = $this->createAdminUser();
+
+    $this->drupalLogin($this->adminUser);
+
+    // Create a reusable FPP.
+    $fpp = new StdClass();
+    $fpp->bundle = $this->bundle;
+    $fpp->title = $this->title;
+    $fpp->reusable = 0;
+    $saved_fpp = fieldable_panels_panes_save($fpp);
+
+    // Load the fpp-add form.
+    $this->drupalGet('admin/structure/fieldable-panels-panes/view/' . $fpp->fpid . '/edit');
+    $this->assertResponse(200);
+
+    // Check all of the fields that are suitable for a reusable FPP.
+
+    // The basic title field.
+    $this->assertFieldByName('title');
+
+    // The "make title a link" option's fields.
+    $this->assertFieldByName('link');
+    $this->assertFieldByName('path');
+
+    // The admin title & description fields.
+    $this->assertFieldByName('admin_title');
+    $this->assertFieldByName('admin_description');
+
+    // The 'reusable' option is not changable after the FPP's initial creation,
+    // and these fields will be hidden for non-reusable FPPs.
+    $this->assertNoFieldByName('reusable');
+    $this->assertNoFieldByName('category');
+
+    // The language selector is not present because the Locale module is not
+    // enabled by default.
+    $this->assertNoFieldByName('language');
+
+    // When editing a non-reusable FPP the revision option may not be disabled
+    // but the log field will be available.
+    $this->assertNoFieldByName('revision');
+    $this->assertFieldByName('log');
+  }
+
+}
diff --git a/profiles/wcm_base/modules/contrib/fieldable_panels_panes/tests/fpp.helper.test b/profiles/wcm_base/modules/contrib/fieldable_panels_panes/tests/fpp.helper.test
index 227bd8b93991969f5455edbd189329b8011861ac..53013570589be51006c6cf7c5b27bac6384694ea 100644
--- a/profiles/wcm_base/modules/contrib/fieldable_panels_panes/tests/fpp.helper.test
+++ b/profiles/wcm_base/modules/contrib/fieldable_panels_panes/tests/fpp.helper.test
@@ -5,6 +5,7 @@
  */
 
 class FppTestHelper extends DrupalWebTestCase {
+
   /**
    * Admin user.
    *
diff --git a/profiles/wcm_base/modules/contrib/fieldable_panels_panes/tests/fpp.locale.test b/profiles/wcm_base/modules/contrib/fieldable_panels_panes/tests/fpp.locale.test
new file mode 100644
index 0000000000000000000000000000000000000000..a5da2ecdc5fc457dafb4fc80314f49a41d26374e
--- /dev/null
+++ b/profiles/wcm_base/modules/contrib/fieldable_panels_panes/tests/fpp.locale.test
@@ -0,0 +1,140 @@
+<?php
+/**
+ * @file
+ * Confirm the language integration works correctly.
+ */
+
+class FppLocaleTest extends FppTestHelper {
+
+  /**
+   * {@inheritdoc}
+   */
+  public static function getInfo() {
+    return array(
+      'name' => 'FPP tests for language handling',
+      'description' => 'Confirm that language handling works correctly.',
+      'group' => 'FPP',
+    );
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  function setUp(array $modules = array()) {
+    $modules[] = 'fieldable_panels_panes';
+
+    // Needed
+    $modules[] = 'locale';
+
+    parent::setUp($modules);
+
+    // Some default values to work with.
+    $this->bundle = 'fieldable_panels_pane';
+    $this->title = 'Test FPP';
+  }
+
+  /**
+   * Verify the language selector exists.
+   */
+  function testLanguageSelector() {
+    // Create a user with the admin permission.
+    $this->adminUser = $this->createAdminUser();
+
+    $this->drupalLogin($this->adminUser);
+
+    // Load the fpp-add form.
+    $this->drupalGet('admin/structure/fieldable-panels-panes/' . $this->bundle . '/add');
+    $this->assertResponse(200);
+
+    // Confirm the language selector is present on the page.
+    $this->assertFieldByName('language');
+  }
+
+  /**
+   * Verify the language selector exists.
+   */
+  function testNoLanguageSelector() {
+    module_disable(array('locale'));
+
+    // Create a user with the admin permission.
+    $this->adminUser = $this->createAdminUser();
+
+    $this->drupalLogin($this->adminUser);
+
+    // Load the fpp-add form.
+    $this->drupalGet('admin/structure/fieldable-panels-panes/' . $this->bundle . '/add');
+    $this->assertResponse(200);
+
+    // Confirm the language selector is present on the page.
+    $this->assertNoFieldByName('language');
+  }
+
+  /**
+   * Verify the language selector works with no language selected.
+   */
+  function testLanguageNone() {
+    // Create a user with the admin permission.
+    $this->adminUser = $this->createAdminUser();
+
+    $this->drupalLogin($this->adminUser);
+
+    // Load the fpp-add form.
+    $this->drupalGet('admin/structure/fieldable-panels-panes/' . $this->bundle . '/add');
+    $this->assertResponse(200);
+
+    // Confirm the language selector is present on the page.
+    $this->assertFieldByName('language');
+    $edit = array(
+      'title' => $this->title,
+      'language' => LANGUAGE_NONE,
+    );
+    $this->drupalPost(NULL, $edit, t('Save'));
+
+    $this->drupalGet('admin/structure/fieldable-panels-panes/' . $this->bundle);
+    $this->assertResponse(200);
+    $this->assertText($this->title);
+
+    // The entity created should have fpid 1.
+    $fpp = fieldable_panels_panes_load(1);
+    $this->assertEqual($this->title, $fpp->title);
+
+    // Confirm that the FPP's language is still 'none'.
+    $language = entity_language('fieldable_panels_pane', $fpp);
+    $this->assertEqual($language, LANGUAGE_NONE);
+  }
+
+  /**
+   * Verify the language selector works with a specific language.
+   */
+  function testLanguageEnglish() {
+    // Create a user with the admin permission.
+    $this->adminUser = $this->createAdminUser();
+
+    $this->drupalLogin($this->adminUser);
+
+    // Load the fpp-add form.
+    $this->drupalGet('admin/structure/fieldable-panels-panes/' . $this->bundle . '/add');
+    $this->assertResponse(200);
+
+    // Confirm the language selector is present on the page.
+    $this->assertFieldByName('language');
+    $edit = array(
+      'title' => $this->title,
+      'language' => 'en',
+    );
+    $this->drupalPost(NULL, $edit, t('Save'));
+
+    $this->drupalGet('admin/structure/fieldable-panels-panes/' . $this->bundle);
+    $this->assertResponse(200);
+    $this->assertText($this->title);
+
+    // The entity created should have fpid 1.
+    $fpp = fieldable_panels_panes_load(1);
+    $this->assertEqual($this->title, $fpp->title);
+
+    // Confirm that the FPP's language is still 'none'.
+    $language = entity_language('fieldable_panels_pane', $fpp);
+    $this->assertEqual($language, 'en');
+  }
+
+}
diff --git a/profiles/wcm_base/modules/contrib/fieldable_panels_panes/tests/fpp.with_panelizer.test b/profiles/wcm_base/modules/contrib/fieldable_panels_panes/tests/fpp.with_panelizer.test
new file mode 100644
index 0000000000000000000000000000000000000000..ddca4bd2321268b61f5b8effaaef45e90f3a3501
--- /dev/null
+++ b/profiles/wcm_base/modules/contrib/fieldable_panels_panes/tests/fpp.with_panelizer.test
@@ -0,0 +1,43 @@
+<?php
+/**
+ * @file
+ * Tests for the Fieldable Panels Panes module with Panelizer.
+ */
+
+class FppWithPanelizerTest extends FppTestHelper {
+  /**
+   * {@inheritdoc}
+   */
+  public static function getInfo() {
+    return array(
+      'name' => 'FPP tests for Panelizer',
+      'description' => 'Confirm that FPP works with Panelizer.',
+      'group' => 'FPP',
+    );
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  function setUp(array $modules = array()) {
+    $modules[] = 'fieldable_panels_panes';
+
+    // Needed for node display.
+    $modules[] = 'panelizer';
+
+    parent::setUp($modules);
+
+    // Some default values to work with.
+    $this->bundle = 'fieldable_panels_pane';
+  }
+
+  function testAddingPanelizer() {
+    // Enable Revisioning.
+    // Enable Panelizer.
+    // Customize a node.
+    // Add an FPP.
+    // Revision the display.
+    // Confirm the new revision is ok.
+  }
+
+}
diff --git a/profiles/wcm_base/modules/contrib/fieldable_panels_panes/tests/fpp.with_panels.test b/profiles/wcm_base/modules/contrib/fieldable_panels_panes/tests/fpp.with_panels.test
new file mode 100644
index 0000000000000000000000000000000000000000..0bf39969161e1ec5c2a0828008fc35c756c57bca
--- /dev/null
+++ b/profiles/wcm_base/modules/contrib/fieldable_panels_panes/tests/fpp.with_panels.test
@@ -0,0 +1,188 @@
+<?php
+/**
+ * @file
+ * Tests for the Fieldable Panels Panes module with Panels.
+ */
+
+class FppWithPanelsTest extends FppTestHelper {
+
+  /**
+   * {@inheritdoc}
+   */
+  public static function getInfo() {
+    return array(
+      'name' => 'FPP tests for Panels',
+      'description' => 'Confirm that FPP works with Panels.',
+      'group' => 'FPP',
+    );
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  function setUp(array $modules = array()) {
+    $modules[] = 'fieldable_panels_panes';
+
+    // Helper.
+    $modules[] = 'fpp_with_panels_test';
+
+    parent::setUp($modules);
+
+    // Some default values to work with.
+    $this->bundle = 'fieldable_panels_pane';
+
+    // Create a user with all the permissions
+    $permissions = array(
+      'administer fieldable panels panes',
+
+      // Needed for Page Manager.
+      'administer page manager',
+      'use page manager',
+    );
+
+    // Reset the static variable used to identify permissions, otherwise it's
+    // possible the permissions check in drupalCreateUser will fail.
+    $this->checkPermissions(array(), TRUE);
+    cache_clear_all();
+
+    $this->adminUser = $this->drupalCreateUser($permissions);
+    $this->drupalLogin($this->adminUser);
+  }
+
+  /**
+   * Make sure admin titles with XSS code can't break the site.
+   */
+  function testAdminTitleLinkWithAmpersands() {
+    // Create an FPP with an XSS payload in the admin title.
+    $fpp = new StdClass();
+    $fpp->bundle = $this->bundle;
+    $fpp->title = 'This is a "test" & it should work';
+    $fpp->reusable = 1;
+    $fpp->link = 1;
+    $fpp->path = 'fpp-with-panels-test';
+    $fpp = fieldable_panels_panes_save($fpp);
+
+    // Load the test Panels page.
+    ctools_include('page', 'page_manager', 'plugins/tasks');
+    $page = page_manager_page_load('fpp_with_panels_test');
+    $this->verbose(print_r($page, TRUE));
+
+    // Load the handlers for this page.
+    $handlers = page_manager_load_task_handlers(page_manager_get_task('page'), $page->name);
+    foreach ($page->default_handlers as $name => $handler) {
+      $display = $handler->conf['display'];
+      $this->verbose(print_r($display, TRUE));
+
+      // Generate a pane for the FPP.
+      $pane = panels_new_pane('fieldable_panels_pane', 'fpid:' . $fpp->fpid);
+      $pane->panel = 'middle';
+
+      // Add the pane to the display.
+      $display->panels[$pane->panel][] = $pane->pid;
+      $display->content[$pane->pid] = $pane;
+
+      // Save the display.
+      panels_save_display($display);
+      $this->verbose(print_r($display, TRUE));
+    }
+    // Save the page.
+    page_manager_page_save($page);
+
+    // Reload the display.
+    $page = page_manager_page_load('fpp_with_panels_test');
+    $this->verbose(print_r($page, TRUE));
+
+    // Load the test Panels page.
+    $this->drupalGet('fpp-with-panels-test');
+    $this->assertResponse(200);
+
+    // Confirm that the string is on the page in htmlencoded format.
+    $this->assertRaw(str_replace('&', '&amp;', $fpp->title));
+
+    // Confirm that the text does not exist on the page as-is, i.e. it has been
+    // htmlencoded.
+    $this->assertNoRaw($fpp->title);
+    $this->assertNoRaw(str_replace('&', '&amp;', str_replace('&', '&amp;', $fpp->title)));
+
+    // Confirm the link exists.
+    $this->assertLink($fpp->title);
+  }
+
+  /**
+   * Make sure titles with XSS code can't break the site.
+   */
+  function testTitleXSS() {
+    // Create an FPP with an XSS payload in the entity title.
+    $fpp = new StdClass();
+    $fpp->bundle = $this->bundle;
+    $fpp->title = "<script>alert('XSS!');</script>";
+    $fpp->reusable = 1;
+    $fpp->admin_title = '';
+    $fpp = fieldable_panels_panes_save($fpp);
+
+    $this->checkAdminUIPaneTitleXSS($fpp);
+  }
+
+  /**
+   * Make sure admin titles with XSS code can't break the site.
+   */
+  function testAdminTitleXSS() {
+    // Create an FPP with an XSS payload in the admin title.
+    $fpp = new StdClass();
+    $fpp->bundle = $this->bundle;
+    $fpp->title = 'XSS test';
+    $fpp->reusable = 1;
+    $fpp->admin_title = "<script>alert('XSS!');</script>";
+    $fpp = fieldable_panels_panes_save($fpp);
+
+    $this->checkAdminUIPaneTitleXSS($fpp);
+  }
+
+  /**
+   * Test that an XSS attack in a pane title won't work in the Panels UI.
+   *
+   * @param object $fpp
+   *   A full FPP entity object.
+   */
+  function checkAdminUIPaneTitleXSS($fpp) {
+    // Load the test Panels page.
+    ctools_include('page', 'page_manager', 'plugins/tasks');
+    $page = page_manager_page_load('fpp_with_panels_test');
+    $this->verbose(print_r($page, TRUE));
+
+    // Load the handlers for this page.
+    $handlers = page_manager_load_task_handlers(page_manager_get_task('page'), $page->name);
+    foreach ($page->default_handlers as $name => $handler) {
+      $display = $handler->conf['display'];
+      $this->verbose(print_r($display, TRUE));
+
+      // Generate a pane for the FPP.
+      $pane = panels_new_pane('fieldable_panels_pane', 'fpid:' . $fpp->fpid);
+      $pane->panel = 'middle';
+
+      // Add the pane to the display.
+      $display->panels[$pane->panel][] = $pane->pid;
+      $display->content[$pane->pid] = $pane;
+
+      // Save the display.
+      panels_save_display($display);
+      $this->verbose(print_r($display, TRUE));
+    }
+    // Save the page.
+    page_manager_page_save($page);
+
+    // Reload the display.
+    $page = page_manager_page_load('fpp_with_panels_test');
+    $this->verbose(print_r($page, TRUE));
+
+    // Load the Panels page's edit page.
+    $this->drupalGet('admin/structure/pages/nojs/operation/page-fpp_with_panels_test/handlers/fpp_with_panels_test__default/content');
+    $this->assertResponse(200);
+
+    // Confirm the whether the XSS string is still present but that the threat
+    // has been removed.
+    $this->assertText("alert('XSS!');", 'The XSS test title string was found.');
+    $this->assertNoRaw("<script>alert('XSS!');</script>", 'The XSS test title was properly defanged.');
+  }
+
+}
diff --git a/profiles/wcm_base/modules/contrib/fieldable_panels_panes/tests/fpp.with_panels_and_entity.test b/profiles/wcm_base/modules/contrib/fieldable_panels_panes/tests/fpp.with_panels_and_entity.test
new file mode 100644
index 0000000000000000000000000000000000000000..7e33aaeffbc657d6424389594501f0f349edb3e7
--- /dev/null
+++ b/profiles/wcm_base/modules/contrib/fieldable_panels_panes/tests/fpp.with_panels_and_entity.test
@@ -0,0 +1,31 @@
+<?php
+/**
+ * @file
+ * Tests for the Fieldable Panels Panes module with Panels and Entity API.
+ */
+
+class FppWithPanelsAndEntityTest extends FppWithPanelsTest {
+
+  /**
+   * {@inheritdoc}
+   */
+  public static function getInfo() {
+    return array(
+      'name' => 'FPP tests for Panels and Entity API',
+      'description' => 'Confirm that FPP+Panes continues working when Entity API is enabled.',
+      'group' => 'FPP',
+    );
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  function setUp(array $modules = array()) {
+    // Entity API.
+    $modules[] = 'entity';
+
+    // The parent setup method will do all of the rest.
+    parent::setUp($modules);
+  }
+
+}
diff --git a/profiles/wcm_base/modules/contrib/fieldable_panels_panes/tests/fpp.with_revisioning.test b/profiles/wcm_base/modules/contrib/fieldable_panels_panes/tests/fpp.with_revisioning.test
new file mode 100644
index 0000000000000000000000000000000000000000..001fc4326710cba3c8708116957e96bfacdf0c1d
--- /dev/null
+++ b/profiles/wcm_base/modules/contrib/fieldable_panels_panes/tests/fpp.with_revisioning.test
@@ -0,0 +1,46 @@
+<?php
+/**
+ * @file
+ * Tests for the Fieldable Panels Panes module with Revisioning.
+ */
+
+class FppWithRevisioningTest extends FppTestHelper {
+  /**
+   * {@inheritdoc}
+   */
+  public static function getInfo() {
+    return array(
+      'name' => 'FPP tests for Revisioning',
+      'description' => 'Confirm that pane revisioning works correctly.',
+      'group' => 'FPP',
+    );
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  function setUp(array $modules = array()) {
+    $modules[] = 'fieldable_panels_panes';
+
+    // Needed for workflow logic.
+    $modules[] = 'revisioning';
+
+    // Needed for node display.
+    $modules[] = 'panelizer';
+
+    parent::setUp($modules);
+
+    // Some default values to work with.
+    $this->bundle = 'fieldable_panels_pane';
+  }
+
+  function testAddingPanelizer() {
+    // Enable Revisioning.
+    // Enable Panelizer.
+    // Customize a node.
+    // Add an FPP.
+    // Revision the display.
+    // Confirm the new revision is ok.
+  }
+
+}
diff --git a/profiles/wcm_base/modules/contrib/fieldable_panels_panes/tests/fpp_with_panels_test.info b/profiles/wcm_base/modules/contrib/fieldable_panels_panes/tests/fpp_with_panels_test.info
new file mode 100644
index 0000000000000000000000000000000000000000..0dc5dadf14aca1d30daaab854cbf99679cc92025
--- /dev/null
+++ b/profiles/wcm_base/modules/contrib/fieldable_panels_panes/tests/fpp_with_panels_test.info
@@ -0,0 +1,17 @@
+name = FPP-with-Panels Tests
+description = Helper module for testing the Panels integration for FPP.
+core = 7.x
+
+; Don't show this on the modules admin page.
+hidden = TRUE
+
+dependencies[] = ctools
+dependencies[] = page_manager
+dependencies[] = fieldable_panels_panes
+
+; Information added by Drupal.org packaging script on 2016-05-04
+version = "7.x-1.10"
+core = "7.x"
+project = "fieldable_panels_panes"
+datestamp = "1462374853"
+
diff --git a/profiles/wcm_base/modules/contrib/fieldable_panels_panes/tests/fpp_with_panels_test.module b/profiles/wcm_base/modules/contrib/fieldable_panels_panes/tests/fpp_with_panels_test.module
new file mode 100644
index 0000000000000000000000000000000000000000..11746aa07c30bc8cd919bbbc0d47be9540cf8ef6
--- /dev/null
+++ b/profiles/wcm_base/modules/contrib/fieldable_panels_panes/tests/fpp_with_panels_test.module
@@ -0,0 +1,14 @@
+<?php
+/**
+ * @file
+ * Primary hook implementations.
+ */
+
+/**
+ * Implements hook_ctools_plugin_api().
+ */
+function fpp_with_panels_test_ctools_plugin_api($module = NULL, $api = NULL) {
+  if ($module == "page_manager" && $api == "pages_default") {
+    return array("version" => "1");
+  }
+}
diff --git a/profiles/wcm_base/modules/contrib/fieldable_panels_panes/tests/fpp_with_panels_test.pages_default.inc b/profiles/wcm_base/modules/contrib/fieldable_panels_panes/tests/fpp_with_panels_test.pages_default.inc
new file mode 100644
index 0000000000000000000000000000000000000000..5d37864299647636a2a05970ae81f5335ca19e7d
--- /dev/null
+++ b/profiles/wcm_base/modules/contrib/fieldable_panels_panes/tests/fpp_with_panels_test.pages_default.inc
@@ -0,0 +1,117 @@
+<?php
+/**
+ * @file
+ * fpp_with_panels_test.pages_default.inc
+ */
+
+/**
+ * Implements hook_default_page_manager_pages().
+ */
+function fpp_with_panels_test_default_page_manager_pages() {
+  $page = new stdClass();
+  $page->disabled = FALSE; /* Edit this to true to make a default page disabled initially */
+  $page->api_version = 1;
+  $page->name = 'fpp_with_panels_test';
+  $page->task = 'page';
+  $page->admin_title = 'FPP-with-Panels test';
+  $page->admin_description = '';
+  $page->path = 'fpp-with-panels-test';
+  $page->access = array();
+  $page->menu = array(
+    'type' => 'none',
+    'title' => '',
+    'weight' => '0',
+    'name' => 'navigation',
+    'parent' => array(
+      'type' => 'none',
+      'title' => '',
+      'weight' => 0,
+      'name' => 'navigation',
+    ),
+  );
+  $page->arguments = array();
+  $page->conf = array(
+    'admin_paths' => FALSE,
+  );
+  $page->default_handlers = array();
+  $handler = new stdClass();
+  $handler->disabled = FALSE; /* Edit this to true to make a default handler disabled initially */
+  $handler->api_version = 1;
+  $handler->name = 'fpp_with_panels_test__default';
+  $handler->task = 'page';
+  $handler->subtask = 'fpp_with_panels_test';
+  $handler->handler = 'panel_context';
+  $handler->weight = 0;
+  $handler->conf = array(
+    'title' => 'Page',
+    'no_blocks' => 0,
+    'pipeline' => 'standard',
+    'body_classes_to_remove' => '',
+    'body_classes_to_add' => '',
+    'css_id' => '',
+    'css' => '',
+    'contexts' => array(),
+    'relationships' => array(),
+    'name' => '',
+    'metatag_panels' => array(
+      'enabled' => 1,
+      'metatags' => array(
+        'title' => array(
+          'value' => 'Test page title',
+        ),
+        'description' => array(
+          'value' => 'Test page description.',
+        ),
+        'keywords' => array(
+          'value' => 'Test, page, keywords',
+        ),
+      ),
+    ),
+  );
+  $display = new panels_display();
+  $display->layout = 'onecol';
+  $display->layout_settings = array();
+  $display->panel_settings = array(
+    'style_settings' => array(
+      'default' => NULL,
+      'middle' => NULL,
+    ),
+  );
+  $display->cache = array();
+  $display->title = 'Testing';
+  $display->uuid = '14a1dc5e-6abd-41d5-a361-56c1c5404f32';
+  $display->content = array();
+  $display->panels = array();
+  $pane = new stdClass();
+  $pane->pid = 'new-8537d8cc-5b2d-4eac-b093-6b62f3fdc38a';
+  $pane->panel = 'middle';
+  $pane->type = 'custom';
+  $pane->subtype = 'custom';
+  $pane->shown = TRUE;
+  $pane->access = array();
+  $pane->configuration = array(
+    'admin_title' => 'Hello',
+    'title' => 'Hello there',
+    'body' => 'Hi.',
+    'format' => 'filtered_html',
+    'substitute' => TRUE,
+  );
+  $pane->cache = array();
+  $pane->style = array(
+    'settings' => NULL,
+  );
+  $pane->css = array();
+  $pane->extras = array();
+  $pane->position = 0;
+  $pane->locks = array();
+  $pane->uuid = '8537d8cc-5b2d-4eac-b093-6b62f3fdc38a';
+  $display->content['new-8537d8cc-5b2d-4eac-b093-6b62f3fdc38a'] = $pane;
+  $display->panels['middle'][0] = 'new-8537d8cc-5b2d-4eac-b093-6b62f3fdc38a';
+  $display->hide_title = PANELS_TITLE_FIXED;
+  $display->title_pane = 'new-8537d8cc-5b2d-4eac-b093-6b62f3fdc38a';
+  $handler->conf['display'] = $display;
+  $page->default_handlers[$handler->name] = $handler;
+  $pages['fpp_with_panels_test'] = $page;
+
+  return $pages;
+}
diff --git a/profiles/wcm_base/modules/contrib/workbench_media/PATCHES.txt b/profiles/wcm_base/modules/contrib/workbench_media/PATCHES.txt
new file mode 100644
index 0000000000000000000000000000000000000000..70fcc532fcb49610d2e10b552c7d276d6e781e10
--- /dev/null
+++ b/profiles/wcm_base/modules/contrib/workbench_media/PATCHES.txt
@@ -0,0 +1,4 @@
+The following patches have been applied to this project:
+- http://drupal.org/files/issues/workbench_media-multiupload-2268005-2.patch
+
+This file was automatically generated by Drush Make (http://drupal.org/project/drush).
\ No newline at end of file
diff --git a/profiles/wcm_base/modules/contrib/workbench_media/workbench_media.module b/profiles/wcm_base/modules/contrib/workbench_media/workbench_media.module
index 61a2ce07d18a24d6d028d4dd5583c7d5293711f2..0f81a985ae95c1f5de1c0363cd04ed1f6ba3c835 100644
--- a/profiles/wcm_base/modules/contrib/workbench_media/workbench_media.module
+++ b/profiles/wcm_base/modules/contrib/workbench_media/workbench_media.module
@@ -23,6 +23,10 @@ function workbench_media_menu() {
     'type' => MENU_VISIBLE_IN_BREADCRUMB,
   );
 
+  if (module_exists('plupload') && module_exists('multiform')) {
+    $items['admin/workbench/media/add']['page arguments'] = array('file_entity_add_upload_multiple');
+  }
+
   return $items;
 }
 
diff --git a/profiles/wcm_base/modules/custom/wcm_user_config/theme/user-login.tpl.php b/profiles/wcm_base/modules/custom/wcm_user_config/theme/user-login.tpl.php
index 1d0ee6852444bd2edb161984281766e111203f2b..59eed063928c19cd62636c516243d18f4edd3513 100644
--- a/profiles/wcm_base/modules/custom/wcm_user_config/theme/user-login.tpl.php
+++ b/profiles/wcm_base/modules/custom/wcm_user_config/theme/user-login.tpl.php
@@ -1,21 +1,30 @@
-<div class="login-box">
-  <h2>OSU Users</h2>
-  <p><a href="<?php print $https_base_url; ?>/saml_login<?php if ($has_destination) : ?>?ReturnTo=<?php print $return_to; ?><?php endif; ?>">Log in with your OSU credentials</a></p>
-  </div>
-
-<div class="login-box">
-  <h2>Non-OSU Users</h2>
-
-    <?php
-      print drupal_render($form['name']);
-      print drupal_render($form['pass']);
-    ?>
+<?php 
+	$handle_non_osu = '<h2> Non-OSU Users</h2>';
+	$non_osu_login = drupal_render($form['name']); 
+	$non_osu_login .= drupal_render($form['pass']);
+	$non_osu_login .= '<p><a href="/user/password">Forgot your password?</a></p>';
+	$non_osu_login .= drupal_render($form['form_build_id']);
+	$non_osu_login .= drupal_render($form['form_id']);
+	$non_osu_login .= drupal_render($form['actions']);	
+?>
 
-    <p><a href="/user/password">Forgot your password?</a></p>
 
-    <?php
-      print drupal_render($form['form_build_id']);
-      print drupal_render($form['form_id']);
-      print drupal_render($form['actions']);
-    ?>
+<div class="login-box osu">
+  <h2>OSU Users</h2>
+  <p><a href="<?php print $https_base_url; ?>/saml_login<?php if ($has_destination) : ?>?ReturnTo=<?php print $return_to; ?><?php endif; ?>">Log in with your OSU credentials</a></p>
 </div>
+
+<div class="login-box non-osu">
+	
+	<?php 
+		print theme(
+	  'ctools_collapsible',
+	  array(
+	    'handle' => $handle_non_osu, 
+	    'content' => $non_osu_login, 
+	    'collapsed' => TRUE
+	  )
+	);
+	?>
+	
+</div>
\ No newline at end of file
diff --git a/profiles/wcm_base/modules/custom/wcm_workbench/wcm_workbench.make b/profiles/wcm_base/modules/custom/wcm_workbench/wcm_workbench.make
index 293569819d00e398c26d9e90e3674f1c64fdbd74..c954e0e73b29a6423626cbfe412aaeaac1af586b 100644
--- a/profiles/wcm_base/modules/custom/wcm_workbench/wcm_workbench.make
+++ b/profiles/wcm_base/modules/custom/wcm_workbench/wcm_workbench.make
@@ -17,6 +17,7 @@ projects[workbench_media][subdir] = contrib
 projects[workbench_media][type] = module
 projects[workbench_media][download][type] = git
 projects[workbench_media][download][branch] = 7.x-2.x
+projects[workbench_media][patch][2268005] = http://drupal.org/files/issues/workbench_media-multiupload-2268005-2.patch
 
 projects[workbench_moderation][version] = 1.x-dev
 projects[workbench_moderation][subdir] = contrib
diff --git a/profiles/wcm_base/themes/ocio_omega_base/css/layouts/ocio-default/ocio-default.layout.css b/profiles/wcm_base/themes/ocio_omega_base/css/layouts/ocio-default/ocio-default.layout.css
index 5814fcdedb7120b0fc3da29bbb1180fe90dc6dc0..e02a350386b5fde72a44423bdb75a1cabb295b89 100644
--- a/profiles/wcm_base/themes/ocio_omega_base/css/layouts/ocio-default/ocio-default.layout.css
+++ b/profiles/wcm_base/themes/ocio_omega_base/css/layouts/ocio-default/ocio-default.layout.css
@@ -17,6 +17,18 @@ body .panels-row.odd .ui-accordion .ui-accordion-content {
   border-color: lightgray;
 }
 
+.ctools-collapsible-container .ctools-toggle {
+  background-image: url(../images/jquery-images/ui-icons_222222_256x240.png);
+  background-position: -64px -15px;
+}
+.ctools-collapsible-container .ctools-toggle-collapsed {
+  background-position: -32px -15px;
+  background-image: url(../images/jquery-images/ui-icons_888888_256x240.png);
+}
+.ctools-collapsible-container .ctools-toggle-collapsed:hover {
+  background-image: url(../images/jquery-images/ui-icons_222222_256x240.png);
+}
+
 ul.breadcrumb {
   padding: 0;
   padding-top: 1.4em;
@@ -63,7 +75,12 @@ ul.breadcrumb li:last-child:after {
 html body .button,
 .form-submit,
 #edit-preview,
-.webform-submit {
+#edit-submit,
+#edit-submit--2,
+#edit-submit--3,
+.webform-submit,
+.webform-previous,
+.button-primary {
   font-size: 14px;
   padding: 0.6em 1.3em 0.5em 1.3em;
   display: inline-block;
@@ -80,37 +97,67 @@ html body .button,
   font-family: "proximanova", Helvetica, Arial, sans-serif;
   letter-spacing: 0.05em;
   font-weight: 400;
+  border-radius: 2px;
+  box-shadow: 0px 3px 0px 0px #920000;
+  padding-top: 0.7em;
+  padding-bottom: 0.4em;
+  font-weight: normal;
 }
 .red-button:hover, input[type=button]:hover,
 html body .button:hover,
 .form-submit:hover,
 #edit-preview:hover,
-.webform-submit:hover {
+#edit-submit:hover,
+#edit-submit--2:hover,
+#edit-submit--3:hover,
+.webform-submit:hover,
+.webform-previous:hover,
+.button-primary:hover {
   text-decoration: none;
 }
 .red-button:hover, input[type=button]:hover,
 html body .button:hover,
 .form-submit:hover,
 #edit-preview:hover,
-.webform-submit:hover {
+#edit-submit:hover,
+#edit-submit--2:hover,
+#edit-submit--3:hover,
+.webform-submit:hover,
+.webform-previous:hover,
+.button-primary:hover {
   background-color: #a20000;
 }
 .red-button:active, input[type=button]:active,
 html body .button:active,
 .form-submit:active,
 #edit-preview:active,
-.webform-submit:active {
+#edit-submit:active,
+#edit-submit--2:active,
+#edit-submit--3:active,
+.webform-submit:active,
+.webform-previous:active,
+.button-primary:active {
   background-color: #920000;
 }
 .red-button.disabled, input.disabled[type=button],
 html body .disabled.button,
 .disabled.form-submit,
 .disabled#edit-preview,
-.disabled.webform-submit, .red-button[disabled], input[disabled][type=button],
+.disabled#edit-submit,
+.disabled#edit-submit--2,
+.disabled#edit-submit--3,
+.disabled.webform-submit,
+.disabled.webform-previous,
+.disabled.button-primary, .red-button[disabled], input[disabled][type=button],
 html body [disabled].button,
 [disabled].form-submit,
 [disabled]#edit-preview,
-[disabled].webform-submit {
+[disabled]#edit-submit,
+[disabled]#edit-submit--2,
+[disabled]#edit-submit--3,
+[disabled].webform-submit,
+[disabled].webform-previous,
+[disabled].button-primary {
   filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=60);
   opacity: 0.6;
   background: false;
@@ -123,7 +170,12 @@ html body [disabled].button,
 html body .button::-moz-focus-inner,
 .form-submit::-moz-focus-inner,
 #edit-preview::-moz-focus-inner,
-.webform-submit::-moz-focus-inner {
+#edit-submit::-moz-focus-inner,
+#edit-submit--2::-moz-focus-inner,
+#edit-submit--3::-moz-focus-inner,
+.webform-submit::-moz-focus-inner,
+.webform-previous::-moz-focus-inner,
+.button-primary::-moz-focus-inner {
   padding: 0 !important;
   margin: -1px !important;
 }
@@ -132,7 +184,12 @@ input[type=button].ext .ext,
 html body .button.ext .ext,
 .form-submit.ext .ext,
 #edit-preview.ext .ext,
-.webform-submit.ext .ext {
+#edit-submit.ext .ext,
+#edit-submit--2.ext .ext,
+#edit-submit--3.ext .ext,
+.webform-submit.ext .ext,
+.webform-previous.ext .ext,
+.button-primary.ext .ext {
   background-image: none;
   padding: 0;
   width: 0;
diff --git a/profiles/wcm_base/themes/ocio_omega_base/css/layouts/ocio-default/ocio-default.layout.no-query.css b/profiles/wcm_base/themes/ocio_omega_base/css/layouts/ocio-default/ocio-default.layout.no-query.css
index f1b5aed21d853ecb9b7405d8c3f7767caa2fc2b5..8333a8ea3a8050e484a9d0682eb1903a20814bd4 100644
--- a/profiles/wcm_base/themes/ocio_omega_base/css/layouts/ocio-default/ocio-default.layout.no-query.css
+++ b/profiles/wcm_base/themes/ocio_omega_base/css/layouts/ocio-default/ocio-default.layout.no-query.css
@@ -17,6 +17,18 @@ body .panels-row.odd .ui-accordion .ui-accordion-content {
   border-color: lightgray;
 }
 
+.ctools-collapsible-container .ctools-toggle {
+  background-image: url(../images/jquery-images/ui-icons_222222_256x240.png);
+  background-position: -64px -15px;
+}
+.ctools-collapsible-container .ctools-toggle-collapsed {
+  background-position: -32px -15px;
+  background-image: url(../images/jquery-images/ui-icons_888888_256x240.png);
+}
+.ctools-collapsible-container .ctools-toggle-collapsed:hover {
+  background-image: url(../images/jquery-images/ui-icons_222222_256x240.png);
+}
+
 ul.breadcrumb {
   padding: 0;
   padding-top: 1.4em;
@@ -63,7 +75,12 @@ ul.breadcrumb li:last-child:after {
 html body .button,
 .form-submit,
 #edit-preview,
-.webform-submit {
+#edit-submit,
+#edit-submit--2,
+#edit-submit--3,
+.webform-submit,
+.webform-previous,
+.button-primary {
   font-size: 14px;
   padding: 0.6em 1.3em 0.5em 1.3em;
   display: inline-block;
@@ -80,37 +97,67 @@ html body .button,
   font-family: "proximanova", Helvetica, Arial, sans-serif;
   letter-spacing: 0.05em;
   font-weight: 400;
+  border-radius: 2px;
+  box-shadow: 0px 3px 0px 0px #920000;
+  padding-top: 0.7em;
+  padding-bottom: 0.4em;
+  font-weight: normal;
 }
 .red-button:hover, input[type=button]:hover,
 html body .button:hover,
 .form-submit:hover,
 #edit-preview:hover,
-.webform-submit:hover {
+#edit-submit:hover,
+#edit-submit--2:hover,
+#edit-submit--3:hover,
+.webform-submit:hover,
+.webform-previous:hover,
+.button-primary:hover {
   text-decoration: none;
 }
 .red-button:hover, input[type=button]:hover,
 html body .button:hover,
 .form-submit:hover,
 #edit-preview:hover,
-.webform-submit:hover {
+#edit-submit:hover,
+#edit-submit--2:hover,
+#edit-submit--3:hover,
+.webform-submit:hover,
+.webform-previous:hover,
+.button-primary:hover {
   background-color: #a20000;
 }
 .red-button:active, input[type=button]:active,
 html body .button:active,
 .form-submit:active,
 #edit-preview:active,
-.webform-submit:active {
+#edit-submit:active,
+#edit-submit--2:active,
+#edit-submit--3:active,
+.webform-submit:active,
+.webform-previous:active,
+.button-primary:active {
   background-color: #920000;
 }
 .red-button.disabled, input.disabled[type=button],
 html body .disabled.button,
 .disabled.form-submit,
 .disabled#edit-preview,
-.disabled.webform-submit, .red-button[disabled], input[disabled][type=button],
+.disabled#edit-submit,
+.disabled#edit-submit--2,
+.disabled#edit-submit--3,
+.disabled.webform-submit,
+.disabled.webform-previous,
+.disabled.button-primary, .red-button[disabled], input[disabled][type=button],
 html body [disabled].button,
 [disabled].form-submit,
 [disabled]#edit-preview,
-[disabled].webform-submit {
+[disabled]#edit-submit,
+[disabled]#edit-submit--2,
+[disabled]#edit-submit--3,
+[disabled].webform-submit,
+[disabled].webform-previous,
+[disabled].button-primary {
   filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=60);
   opacity: 0.6;
   background: false;
@@ -123,7 +170,12 @@ html body [disabled].button,
 html body .button::-moz-focus-inner,
 .form-submit::-moz-focus-inner,
 #edit-preview::-moz-focus-inner,
-.webform-submit::-moz-focus-inner {
+#edit-submit::-moz-focus-inner,
+#edit-submit--2::-moz-focus-inner,
+#edit-submit--3::-moz-focus-inner,
+.webform-submit::-moz-focus-inner,
+.webform-previous::-moz-focus-inner,
+.button-primary::-moz-focus-inner {
   padding: 0 !important;
   margin: -1px !important;
 }
@@ -132,7 +184,12 @@ input[type=button].ext .ext,
 html body .button.ext .ext,
 .form-submit.ext .ext,
 #edit-preview.ext .ext,
-.webform-submit.ext .ext {
+#edit-submit.ext .ext,
+#edit-submit--2.ext .ext,
+#edit-submit--3.ext .ext,
+.webform-submit.ext .ext,
+.webform-previous.ext .ext,
+.button-primary.ext .ext {
   background-image: none;
   padding: 0;
   width: 0;
diff --git a/profiles/wcm_base/themes/ocio_omega_base/css/ocio-omega-base.no-query.css b/profiles/wcm_base/themes/ocio_omega_base/css/ocio-omega-base.no-query.css
index 34cea294def7334f940e0ca65778747dda57399b..4567f0b3843fdda6ea22b714c98b78d14286c73c 100644
--- a/profiles/wcm_base/themes/ocio_omega_base/css/ocio-omega-base.no-query.css
+++ b/profiles/wcm_base/themes/ocio_omega_base/css/ocio-omega-base.no-query.css
@@ -13,6 +13,18 @@ body .panels-row.odd .ui-accordion .ui-accordion-content {
   border-color: lightgray;
 }
 
+.ctools-collapsible-container .ctools-toggle {
+  background-image: url(../images/jquery-images/ui-icons_222222_256x240.png);
+  background-position: -64px -15px;
+}
+.ctools-collapsible-container .ctools-toggle-collapsed {
+  background-position: -32px -15px;
+  background-image: url(../images/jquery-images/ui-icons_888888_256x240.png);
+}
+.ctools-collapsible-container .ctools-toggle-collapsed:hover {
+  background-image: url(../images/jquery-images/ui-icons_222222_256x240.png);
+}
+
 ul.breadcrumb {
   padding: 0;
   padding-top: 1.4em;
@@ -59,7 +71,12 @@ ul.breadcrumb li:last-child:after {
 html body .button,
 .form-submit,
 #edit-preview,
-.webform-submit, .node-type-webform #edit-submitted-file-upload-button {
+#edit-submit,
+#edit-submit--2,
+#edit-submit--3,
+.webform-submit,
+.webform-previous,
+.button-primary, .page-user-login .login-box.osu a, .node-type-webform #edit-submitted-file-upload-button {
   font-size: 14px;
   padding: 0.6em 1.3em 0.5em 1.3em;
   display: inline-block;
@@ -76,37 +93,67 @@ html body .button,
   font-family: "proximanova", Helvetica, Arial, sans-serif;
   letter-spacing: 0.05em;
   font-weight: 400;
+  border-radius: 2px;
+  box-shadow: 0px 3px 0px 0px #920000;
+  padding-top: 0.7em;
+  padding-bottom: 0.4em;
+  font-weight: normal;
 }
 .red-button:hover, input[type=button]:hover,
 html body .button:hover,
 .form-submit:hover,
 #edit-preview:hover,
-.webform-submit:hover, .node-type-webform #edit-submitted-file-upload-button:hover {
+#edit-submit:hover,
+#edit-submit--2:hover,
+#edit-submit--3:hover,
+.webform-submit:hover,
+.webform-previous:hover,
+.button-primary:hover, .page-user-login .login-box.osu a:hover, .node-type-webform #edit-submitted-file-upload-button:hover {
   text-decoration: none;
 }
 .red-button:hover, input[type=button]:hover,
 html body .button:hover,
 .form-submit:hover,
 #edit-preview:hover,
-.webform-submit:hover, .node-type-webform #edit-submitted-file-upload-button:hover {
+#edit-submit:hover,
+#edit-submit--2:hover,
+#edit-submit--3:hover,
+.webform-submit:hover,
+.webform-previous:hover,
+.button-primary:hover, .page-user-login .login-box.osu a:hover, .node-type-webform #edit-submitted-file-upload-button:hover {
   background-color: #a20000;
 }
 .red-button:active, input[type=button]:active,
 html body .button:active,
 .form-submit:active,
 #edit-preview:active,
-.webform-submit:active, .node-type-webform #edit-submitted-file-upload-button:active {
+#edit-submit:active,
+#edit-submit--2:active,
+#edit-submit--3:active,
+.webform-submit:active,
+.webform-previous:active,
+.button-primary:active, .page-user-login .login-box.osu a:active, .node-type-webform #edit-submitted-file-upload-button:active {
   background-color: #920000;
 }
 .red-button.disabled, input.disabled[type=button],
 html body .disabled.button,
 .disabled.form-submit,
 .disabled#edit-preview,
-.disabled.webform-submit, .node-type-webform .disabled#edit-submitted-file-upload-button, .red-button[disabled], input[disabled][type=button],
+.disabled#edit-submit,
+.disabled#edit-submit--2,
+.disabled#edit-submit--3,
+.disabled.webform-submit,
+.disabled.webform-previous,
+.disabled.button-primary, .page-user-login .login-box.osu a.disabled, .node-type-webform .disabled#edit-submitted-file-upload-button, .red-button[disabled], input[disabled][type=button],
 html body [disabled].button,
 [disabled].form-submit,
 [disabled]#edit-preview,
-[disabled].webform-submit, .node-type-webform [disabled]#edit-submitted-file-upload-button {
+[disabled]#edit-submit,
+[disabled]#edit-submit--2,
+[disabled]#edit-submit--3,
+[disabled].webform-submit,
+[disabled].webform-previous,
+[disabled].button-primary, .page-user-login .login-box.osu a[disabled], .node-type-webform [disabled]#edit-submitted-file-upload-button {
   filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=60);
   opacity: 0.6;
   background: false;
@@ -119,7 +166,12 @@ html body [disabled].button,
 html body .button::-moz-focus-inner,
 .form-submit::-moz-focus-inner,
 #edit-preview::-moz-focus-inner,
-.webform-submit::-moz-focus-inner, .node-type-webform #edit-submitted-file-upload-button::-moz-focus-inner {
+#edit-submit::-moz-focus-inner,
+#edit-submit--2::-moz-focus-inner,
+#edit-submit--3::-moz-focus-inner,
+.webform-submit::-moz-focus-inner,
+.webform-previous::-moz-focus-inner,
+.button-primary::-moz-focus-inner, .page-user-login .login-box.osu a::-moz-focus-inner, .node-type-webform #edit-submitted-file-upload-button::-moz-focus-inner {
   padding: 0 !important;
   margin: -1px !important;
 }
@@ -128,7 +180,12 @@ input[type=button].ext .ext,
 html body .button.ext .ext,
 .form-submit.ext .ext,
 #edit-preview.ext .ext,
-.webform-submit.ext .ext {
+#edit-submit.ext .ext,
+#edit-submit--2.ext .ext,
+#edit-submit--3.ext .ext,
+.webform-submit.ext .ext,
+.webform-previous.ext .ext,
+.button-primary.ext .ext {
   background-image: none;
   padding: 0;
   width: 0;
@@ -2348,6 +2405,28 @@ p.search-result__snippet {
   padding: 0;
 }
 
+.page-user-login h1 {
+  margin-bottom: 1em;
+}
+.page-user-login .login-box {
+  background: #ededed;
+  padding: 1em 1.6em;
+}
+.page-user-login .login-box h2 {
+  margin-top: 0.2em;
+  font-size: 20px;
+  font-weight: 600;
+}
+.page-user-login .login-box.osu {
+  margin-bottom: 2em;
+}
+.page-user-login .login-box.osu h2 {
+  margin-bottom: 1em;
+}
+.page-user-login .login-box.non-osu .ctools-collapsible-content {
+  padding-top: 2em;
+}
+
 .user-profile .field--name-field-job-title {
   font-size: 20px;
   font-size: 2rem;
diff --git a/profiles/wcm_base/themes/ocio_omega_base/css/ocio-omega-base.styles.css b/profiles/wcm_base/themes/ocio_omega_base/css/ocio-omega-base.styles.css
index 0a812044d03945af1ac45a7c6993e942b8670999..b4660382c1d2b0c086628b10c92dfb685d20477c 100644
--- a/profiles/wcm_base/themes/ocio_omega_base/css/ocio-omega-base.styles.css
+++ b/profiles/wcm_base/themes/ocio_omega_base/css/ocio-omega-base.styles.css
@@ -13,6 +13,18 @@ body .panels-row.odd .ui-accordion .ui-accordion-content {
   border-color: lightgray;
 }
 
+.ctools-collapsible-container .ctools-toggle {
+  background-image: url(../images/jquery-images/ui-icons_222222_256x240.png);
+  background-position: -64px -15px;
+}
+.ctools-collapsible-container .ctools-toggle-collapsed {
+  background-position: -32px -15px;
+  background-image: url(../images/jquery-images/ui-icons_888888_256x240.png);
+}
+.ctools-collapsible-container .ctools-toggle-collapsed:hover {
+  background-image: url(../images/jquery-images/ui-icons_222222_256x240.png);
+}
+
 ul.breadcrumb {
   padding: 0;
   padding-top: 1.4em;
@@ -59,7 +71,12 @@ ul.breadcrumb li:last-child:after {
 html body .button,
 .form-submit,
 #edit-preview,
-.webform-submit, .node-type-webform #edit-submitted-file-upload-button {
+#edit-submit,
+#edit-submit--2,
+#edit-submit--3,
+.webform-submit,
+.webform-previous,
+.button-primary, .page-user-login .login-box.osu a, .node-type-webform #edit-submitted-file-upload-button {
   font-size: 14px;
   padding: 0.6em 1.3em 0.5em 1.3em;
   display: inline-block;
@@ -76,37 +93,67 @@ html body .button,
   font-family: "proximanova", Helvetica, Arial, sans-serif;
   letter-spacing: 0.05em;
   font-weight: 400;
+  border-radius: 2px;
+  box-shadow: 0px 3px 0px 0px #920000;
+  padding-top: 0.7em;
+  padding-bottom: 0.4em;
+  font-weight: normal;
 }
 .red-button:hover, input[type=button]:hover,
 html body .button:hover,
 .form-submit:hover,
 #edit-preview:hover,
-.webform-submit:hover, .node-type-webform #edit-submitted-file-upload-button:hover {
+#edit-submit:hover,
+#edit-submit--2:hover,
+#edit-submit--3:hover,
+.webform-submit:hover,
+.webform-previous:hover,
+.button-primary:hover, .page-user-login .login-box.osu a:hover, .node-type-webform #edit-submitted-file-upload-button:hover {
   text-decoration: none;
 }
 .red-button:hover, input[type=button]:hover,
 html body .button:hover,
 .form-submit:hover,
 #edit-preview:hover,
-.webform-submit:hover, .node-type-webform #edit-submitted-file-upload-button:hover {
+#edit-submit:hover,
+#edit-submit--2:hover,
+#edit-submit--3:hover,
+.webform-submit:hover,
+.webform-previous:hover,
+.button-primary:hover, .page-user-login .login-box.osu a:hover, .node-type-webform #edit-submitted-file-upload-button:hover {
   background-color: #a20000;
 }
 .red-button:active, input[type=button]:active,
 html body .button:active,
 .form-submit:active,
 #edit-preview:active,
-.webform-submit:active, .node-type-webform #edit-submitted-file-upload-button:active {
+#edit-submit:active,
+#edit-submit--2:active,
+#edit-submit--3:active,
+.webform-submit:active,
+.webform-previous:active,
+.button-primary:active, .page-user-login .login-box.osu a:active, .node-type-webform #edit-submitted-file-upload-button:active {
   background-color: #920000;
 }
 .red-button.disabled, input.disabled[type=button],
 html body .disabled.button,
 .disabled.form-submit,
 .disabled#edit-preview,
-.disabled.webform-submit, .node-type-webform .disabled#edit-submitted-file-upload-button, .red-button[disabled], input[disabled][type=button],
+.disabled#edit-submit,
+.disabled#edit-submit--2,
+.disabled#edit-submit--3,
+.disabled.webform-submit,
+.disabled.webform-previous,
+.disabled.button-primary, .page-user-login .login-box.osu a.disabled, .node-type-webform .disabled#edit-submitted-file-upload-button, .red-button[disabled], input[disabled][type=button],
 html body [disabled].button,
 [disabled].form-submit,
 [disabled]#edit-preview,
-[disabled].webform-submit, .node-type-webform [disabled]#edit-submitted-file-upload-button {
+[disabled]#edit-submit,
+[disabled]#edit-submit--2,
+[disabled]#edit-submit--3,
+[disabled].webform-submit,
+[disabled].webform-previous,
+[disabled].button-primary, .page-user-login .login-box.osu a[disabled], .node-type-webform [disabled]#edit-submitted-file-upload-button {
   filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=60);
   opacity: 0.6;
   background: false;
@@ -119,7 +166,12 @@ html body [disabled].button,
 html body .button::-moz-focus-inner,
 .form-submit::-moz-focus-inner,
 #edit-preview::-moz-focus-inner,
-.webform-submit::-moz-focus-inner, .node-type-webform #edit-submitted-file-upload-button::-moz-focus-inner {
+#edit-submit::-moz-focus-inner,
+#edit-submit--2::-moz-focus-inner,
+#edit-submit--3::-moz-focus-inner,
+.webform-submit::-moz-focus-inner,
+.webform-previous::-moz-focus-inner,
+.button-primary::-moz-focus-inner, .page-user-login .login-box.osu a::-moz-focus-inner, .node-type-webform #edit-submitted-file-upload-button::-moz-focus-inner {
   padding: 0 !important;
   margin: -1px !important;
 }
@@ -128,7 +180,12 @@ input[type=button].ext .ext,
 html body .button.ext .ext,
 .form-submit.ext .ext,
 #edit-preview.ext .ext,
-.webform-submit.ext .ext {
+#edit-submit.ext .ext,
+#edit-submit--2.ext .ext,
+#edit-submit--3.ext .ext,
+.webform-submit.ext .ext,
+.webform-previous.ext .ext,
+.button-primary.ext .ext {
   background-image: none;
   padding: 0;
   width: 0;
@@ -2380,6 +2437,28 @@ p.search-result__snippet {
   padding: 0;
 }
 
+.page-user-login h1 {
+  margin-bottom: 1em;
+}
+.page-user-login .login-box {
+  background: #ededed;
+  padding: 1em 1.6em;
+}
+.page-user-login .login-box h2 {
+  margin-top: 0.2em;
+  font-size: 20px;
+  font-weight: 600;
+}
+.page-user-login .login-box.osu {
+  margin-bottom: 2em;
+}
+.page-user-login .login-box.osu h2 {
+  margin-bottom: 1em;
+}
+.page-user-login .login-box.non-osu .ctools-collapsible-content {
+  padding-top: 2em;
+}
+
 .user-profile .field--name-field-job-title {
   font-size: 20px;
   font-size: 2rem;
diff --git a/profiles/wcm_base/themes/ocio_omega_base/images/jquery-images/ui-icons_222222_256x240.png b/profiles/wcm_base/themes/ocio_omega_base/images/jquery-images/ui-icons_222222_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..e9c8e16ac5e7f61c843fbac290ce30c5de7e40b6
Binary files /dev/null and b/profiles/wcm_base/themes/ocio_omega_base/images/jquery-images/ui-icons_222222_256x240.png differ
diff --git a/profiles/wcm_base/themes/ocio_omega_base/images/jquery-images/ui-icons_888888_256x240.png b/profiles/wcm_base/themes/ocio_omega_base/images/jquery-images/ui-icons_888888_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..d3e6e02a03d4cfdc6a2114f736aa57e8a898b98b
Binary files /dev/null and b/profiles/wcm_base/themes/ocio_omega_base/images/jquery-images/ui-icons_888888_256x240.png differ
diff --git a/profiles/wcm_base/themes/ocio_omega_base/sass/base/_accordions.scss b/profiles/wcm_base/themes/ocio_omega_base/sass/base/_accordions.scss
index 05f3a0e498a70b5cfe573c2e7378910f0d158ed2..a51687a32badbbbc88cbe5d320a1c09d1250bde7 100644
--- a/profiles/wcm_base/themes/ocio_omega_base/sass/base/_accordions.scss
+++ b/profiles/wcm_base/themes/ocio_omega_base/sass/base/_accordions.scss
@@ -20,3 +20,23 @@ body .panels-row.odd .ui-accordion {
   }
 }
 
+
+//style ctools collapsible arrows to mimic jquery-ui accordion arrows
+
+.ctools-collapsible-container {
+
+	//expanded arrow
+	.ctools-toggle {
+		background-image: url(../images/jquery-images/ui-icons_222222_256x240.png);
+		background-position: -64px -15px;
+	}
+	
+	.ctools-toggle-collapsed {
+		background-position: -32px -15px;
+		background-image: url(../images/jquery-images/ui-icons_888888_256x240.png);
+		&:hover {
+			background-image: url(../images/jquery-images/ui-icons_222222_256x240.png);
+		}
+	}
+
+}
diff --git a/profiles/wcm_base/themes/ocio_omega_base/sass/base/_buttons.scss b/profiles/wcm_base/themes/ocio_omega_base/sass/base/_buttons.scss
index 811a018fae8b500a542e4464170f945a7aa357b9..079209402b9ce47a6e82f5ca92bcb59735d0a8ba 100644
--- a/profiles/wcm_base/themes/ocio_omega_base/sass/base/_buttons.scss
+++ b/profiles/wcm_base/themes/ocio_omega_base/sass/base/_buttons.scss
@@ -8,13 +8,23 @@
   font-family: $proxima;
   letter-spacing: 0.05em;
   font-weight: 400;
+  border-radius: 2px;
+  box-shadow: 0px 3px 0px 0px darken($red, 8%);
+  padding-top: 0.7em;
+  padding-bottom: 0.4em;
+  font-weight: normal;
 }
 
 input[type=button],
 html body .button,
 .form-submit,
 #edit-preview,
-.webform-submit {
+#edit-submit,
+#edit-submit--2,
+#edit-submit--3,
+.webform-submit,
+.webform-previous,
+.button-primary {
   @extend .red-button;
 
   &.ext .ext {
diff --git a/profiles/wcm_base/themes/ocio_omega_base/sass/components/_users.scss b/profiles/wcm_base/themes/ocio_omega_base/sass/components/_users.scss
index c84fd6479405a8369d308d48e05cbc0b1d4d636a..93419ecaa162010101fbc8d33b090cf03d89faf8 100644
--- a/profiles/wcm_base/themes/ocio_omega_base/sass/components/_users.scss
+++ b/profiles/wcm_base/themes/ocio_omega_base/sass/components/_users.scss
@@ -1,3 +1,44 @@
+//user login page
+.page-user-login {
+	h1 {
+		margin-bottom: 1em;
+	}
+	
+	
+	.login-box {
+		background: $lt-gray;
+		padding: 1em 1.6em;
+		
+		h2 {
+			margin-top: 0.2em;
+			font-size: 20px;
+			font-weight: 600;
+		}
+	}
+	
+
+	.login-box.osu {
+		margin-bottom: 2em;
+		
+		h2 {
+			margin-bottom: 1em;
+		}
+		
+		a {
+			@extend .red-button;
+		}
+	}
+	
+	.login-box.non-osu {
+		.ctools-collapsible-content {
+			padding-top: 2em;
+		}
+	}
+	
+}
+
+
+
 //user profile pages
 .user-profile {
 	
diff --git a/profiles/wcm_base/wcm_base.make b/profiles/wcm_base/wcm_base.make
index cb66fa1931c9cf77567dd495baa3e610ad71ba82..e30481f336e4dbdcb166b3d5e3953bf8738cebda 100644
--- a/profiles/wcm_base/wcm_base.make
+++ b/profiles/wcm_base/wcm_base.make
@@ -46,7 +46,7 @@ projects[features][patch][986968] = https://drupal.org/files/issues/export_shorc
 projects[features_extra][version] = 1.0
 projects[features_extra][subdir] = contrib
 
-projects[fieldable_panels_panes][version] = 1.8
+projects[fieldable_panels_panes][version] = 1.10
 projects[fieldable_panels_panes][subdir] = contrib
 
 projects[file_entity][version] = 2.0-beta2