diff --git a/panels_breadcrumbs.install b/panels_breadcrumbs.install
new file mode 100644
index 0000000..77e7c51
--- /dev/null
+++ b/panels_breadcrumbs.install
@@ -0,0 +1,18 @@
+<?php
+
+/**
+ * Implements hook_install().
+ */
+function panels_breadcrumbs_install() {
+  panels_breadcrumb_add_panelizer_table_fields();
+}
+
+/**
+ * Implements hook_uninstall().
+ */
+function panels_breadcrumbs_uninstall() {
+  db_drop_field('panelizer_entity', 'panels_breadcrumbs_state');
+  db_drop_field('panelizer_entity', 'panels_breadcrumbs_home');
+  db_drop_field('panelizer_entity', 'panels_breadcrumbs_titles');
+  db_drop_field('panelizer_entity', 'panels_breadcrumbs_paths');
+}
\ No newline at end of file
diff --git a/panels_breadcrumbs.module b/panels_breadcrumbs.module
index 815eadd..4a3dde8 100644
--- a/panels_breadcrumbs.module
+++ b/panels_breadcrumbs.module
@@ -320,3 +320,121 @@ function panels_breadcrumbs_page_breadcrumb_content_type_admin_info($subtype, $c
   $block->content = '';
   return $block;
 }
+
+/**
+ * Implements hook_panelizer_operations_alter().
+ */
+function panels_breadcrumbs_panelizer_operations_alter(&$operations) {
+  $operations['breadcrumbs'] = array(
+    'title' => 'breadcrumbs',
+    'callback' => 'panels_breadcrumbs_panelizer_operation_breadcrumb',
+  );
+}
+
+/**
+ * Panelizer operation callback.
+ */
+function panels_breadcrumbs_panelizer_operation_breadcrumb($js, $input, $entity, $view_mode, $panelizer_entity_plugin) {
+  $panelizer = $entity->panelizer[$view_mode];
+  if (empty($panelizer)) {
+    return MENU_NOT_FOUND;
+  }
+
+  $contexts = $panelizer_entity_plugin->get_contexts($panelizer);
+
+  $form_state = array('entity' => $entity, 'contexts' => $contexts, 'panelizer_entity_plugin' => $panelizer_entity_plugin, 'view_mode' => $view_mode);
+
+  $output = drupal_build_form('panels_breadcrumbs_panelizer_breadcrumb_form', $form_state);
+  return $panelizer_entity_plugin->wrap_entity_panelizer_pages($entity, $view_mode, $output);
+}
+
+/**
+ * Panelizer Breadcrumbs settings form.
+ */
+function panels_breadcrumbs_panelizer_breadcrumb_form($form, &$form_state) {
+  $form = panels_breadcrumbs_partial_configuration_form((array)$form_state['entity']->panelizer[$form_state['view_mode']], $form_state['contexts']);
+  // Add "Save" button.
+  $form['submit'] = array('#type' => 'submit', '#value' => t('Save'));
+  return $form;
+}
+
+/**
+ * Submit handler for Breadcrumbs form.
+ */
+function panels_breadcrumbs_panelizer_breadcrumb_form_submit($form, &$form_state) {
+  $panelizer = &$form_state['entity']->panelizer[$form_state['view_mode']];
+  $panelizer->panels_breadcrumbs_state = $form_state['values']['panels_breadcrumbs_state'];
+  $panelizer->panels_breadcrumbs_titles = $form_state['values']['panels_breadcrumbs_titles'];
+  $panelizer->panels_breadcrumbs_paths = $form_state['values']['panels_breadcrumbs_paths'];
+  $panelizer->panels_breadcrumbs_home = $form_state['values']['panels_breadcrumbs_home'];
+
+  $form_state['panelizer_entity_plugin']->hook_entity_update($form_state['entity']);
+}
+
+/**
+ * Add custom fields to panelizer table for storing panels_breadcrumbs settings.
+ */
+function panels_breadcrumb_add_panelizer_table_fields() {
+  if (db_table_exists('panelizer_entity')) {
+    $spec = array(
+      'type' => 'varchar',
+      'length' => '255',
+    );
+    db_add_field('panelizer_entity', 'panels_breadcrumbs_state', $spec);
+    db_add_field('panelizer_entity', 'panels_breadcrumbs_home', $spec);
+
+    $spec = array(
+      'type' => 'text',
+      'size' => 'big',
+    );
+    db_add_field('panelizer_entity', 'panels_breadcrumbs_titles', $spec);
+    db_add_field('panelizer_entity', 'panels_breadcrumbs_paths', $spec);
+  }
+}
+
+/**
+ * Implements hook_schema_alter().
+ */
+function panels_breadcrumbs_schema_alter(&$schema) {
+  if (isset($schema['panelizer_entity'])) {
+    $spec = array(
+      'type' => 'varchar',
+      'length' => '255',
+    );
+    $schema['panelizer_entity']['fields']['panels_breadcrumbs_state'] = $spec;
+    $schema['panelizer_entity']['fields']['panels_breadcrumbs_home'] = $spec;
+    $spec = array(
+      'type' => 'text',
+      'size' => 'big',
+    );
+    $schema['panelizer_entity']['fields']['panels_breadcrumbs_titles'] = $spec;
+    $schema['panelizer_entity']['fields']['panels_breadcrumbs_paths'] = $spec;
+  }
+}
+
+/**
+ * Implements hook_modules_enabled().
+ *
+ * Add fields if panelizer module is enabled after panels_breadcrumbs.
+ */
+function panels_breadcrumbs_modules_enabled($modules) {
+  if (in_array('panelizer', $modules)) {
+    panels_breadcrumb_add_panelizer_table_fields();
+  }
+}
+
+/**
+ * Implements hook_entity_view().
+ *
+ * Set the breadcrumb for panelized entity.
+ */
+function panels_breadcrumbs_entity_view($entity, $type, $view_mode, $langcode) {
+  if (!isset($entity->panelizer[$view_mode])) {
+    return;
+  }
+
+  // Load panelized plugin, contexts and set breadcrumbs.
+  $panelizer_entity_plugin = panelizer_entity_plugin_get_handler($type);
+  $contexts = $panelizer_entity_plugin->get_contexts($entity->panelizer[$view_mode]);
+  panels_breadcrumbs_build_breadcrumb((array)$entity->panelizer[$view_mode], $contexts, TRUE);
+}
