diff --git a/block/flickr_block.module b/block/flickr_block.module
index d62ea3b..56b3878 100644
--- a/block/flickr_block.module
+++ b/block/flickr_block.module
@@ -632,12 +632,12 @@ function flickr_block_save($delta = '', $edit = array()) {
 function flickr_block_view($delta = '') {
   $settings = variable_get('flickr_block_' . $delta, array(
     'user_id' => '',
-    'show_n' => 4,
-    'size' => 's',
+    'show_n' => variable_get('flickr_photos_per_page', 6),
+    'size' => variable_get('flickr_default_size_album', 'q'),
     'tag' => '',
     'group_id' => '',
     'photoset_id' => '',
-    'sort' => 'random',
+    'sort' => 'unsorted',
     'filter' => '',
     'media' => 'photos',
     'vocab' => '',
@@ -665,6 +665,12 @@ function flickr_block_view($delta = '') {
   if (!isset($settings['photoset_id'])) {
     $settings['photoset_id'] = '';
   }
+  if (!isset($settings['sort'])) {
+    $settings['sort'] = 'unsorted';
+  }
+  if (!isset($settings['filter'])) {
+    $settings['filter'] = '';
+  }
   if (!isset($settings['vocab'])) {
     $settings['vocab'] = '';
   }
@@ -692,7 +698,7 @@ function flickr_block_view($delta = '') {
             $user = user_load($uid);
             if (module_exists('taxonomy')) {
               $taxonomy = taxonomy_vocabulary_load($settings['vocab']);
-              $terms_user = (!empty($settings['vocab'])) ? field_view_field('user', $user, 'field_' . $taxonomy->machine_name) : '';
+              $terms_user = (!empty($settings['vocab']) && $taxonomy != FALSE && !empty($vars['node']->field_{$taxonomy->machine_name})) ? field_view_field('user', $user, 'field_' . $taxonomy->machine_name) : '';
               if (!empty($terms_user)) {
                 $i = 0;
                 foreach ($terms_user['#items'] as $item) {
@@ -718,7 +724,7 @@ function flickr_block_view($delta = '') {
             $user = user_load($node->uid);
             if (module_exists('taxonomy')) {
               $taxonomy = taxonomy_vocabulary_load($settings['vocab']);
-              $terms_user = (!empty($settings['vocab'])) ? field_view_field('user', $user, 'field_' . $taxonomy->machine_name) : '';
+              $terms_user = (!empty($settings['vocab']) && $taxonomy != FALSE && !empty($vars['node']->field_{$taxonomy->machine_name})) ? field_view_field('user', $user, 'field_' . $taxonomy->machine_name) : '';
               if (!empty($terms_user)) {
                 $i = 0;
                 foreach ($terms_user['#items'] as $item) {
@@ -729,7 +735,7 @@ function flickr_block_view($delta = '') {
               else {
                 $tags_user = '';
               }
-              $terms_node = (!empty($settings['vocab'])) ? field_view_field('node', $node, 'field_' . $taxonomy->machine_name) : '';
+              $terms_node = (!empty($settings['vocab']) && $taxonomy != FALSE) ? field_view_field('node', $node, 'field_' . $taxonomy->machine_name) : '';
               if (!empty($terms_node)) {
                 $i = 0;
                 foreach ($terms_node['#items'] as $item) {
@@ -823,7 +829,7 @@ function flickr_block_view($delta = '') {
         $node = node_load($nid);
         if (module_exists('taxonomy')) {
           $taxonomy = taxonomy_vocabulary_load($settings['vocab']);
-          $terms = (!empty($settings['vocab'])) ? field_view_field('node', $node, 'field_' . $taxonomy->machine_name) : '';
+          $terms = (!empty($settings['vocab']) && $taxonomy != FALSE && !empty($vars['node']->field_{$taxonomy->machine_name})) ? field_view_field('node', $node, 'field_' . $taxonomy->machine_name) : '';
           if (!empty($terms)) {
             $i = 0;
             foreach ($terms['#items'] as $item) {
@@ -869,7 +875,7 @@ function flickr_block_view($delta = '') {
         $node = node_load($nid);
         if (module_exists('taxonomy')) {
           $taxonomy = taxonomy_vocabulary_load($settings['vocab']);
-          $terms = (!empty($settings['vocab'])) ? field_view_field('node', $node, 'field_' . $taxonomy->machine_name) : '';
+          $terms = (!empty($settings['vocab']) && $taxonomy != FALSE && !empty($vars['node']->field_{$taxonomy->machine_name})) ? field_view_field('node', $node, 'field_' . $taxonomy->machine_name) : '';
           if (!empty($terms)) {
             $i = 0;
             foreach ($terms['#items'] as $item) {
@@ -900,7 +906,7 @@ function flickr_block_view($delta = '') {
         $node = node_load($nid);
         if (module_exists('taxonomy')) {
           $taxonomy = taxonomy_vocabulary_load($settings['vocab']);
-          $terms = (!empty($settings['vocab'])) ? field_view_field('node', $node, 'field_' . $taxonomy->machine_name) : '';
+          $terms = (!empty($settings['vocab']) && $taxonomy != FALSE && !empty($vars['node']->field_{$taxonomy->machine_name})) ? field_view_field('node', $node, 'field_' . $taxonomy->machine_name) : '';
           if (!empty($terms)) {
             $i = 0;
             foreach ($terms['#items'] as $item) {
@@ -932,7 +938,7 @@ function flickr_block_view($delta = '') {
         $node = node_load($nid);
         if (module_exists('taxonomy')) {
           $taxonomy = taxonomy_vocabulary_load($settings['vocab']);
-          $terms = (!empty($settings['vocab'])) ? field_view_field('node', $node, 'field_' . $taxonomy->machine_name) : '';
+          $terms = (!empty($settings['vocab']) && $taxonomy != FALSE && !empty($vars['node']->field_{$taxonomy->machine_name})) ? field_view_field('node', $node, 'field_' . $taxonomy->machine_name) : '';
           if (!empty($terms)) {
             $i = 0;
             foreach ($terms['#items'] as $item) {
diff --git a/flickr.inc b/flickr.inc
index c25274e..b75eb3b 100644
--- a/flickr.inc
+++ b/flickr.inc
@@ -493,7 +493,7 @@ function flickr_get_id_type($id) {
 /**
  * Render multiple photos as an album.
  */
-function _flickr_album($type = 'user', $id = '39873962@N08', $show_n = NULL, $size = NULL, $media = 'photos', $tags = '', $tags_user = '', $delta = 'true', $sort = 'random', $heading = 'p', $min_title = NULL, $min_metadata = NULL, $vocab_isset = 0, $filter = NULL) {
+function _flickr_album($type = 'user', $id = '39873962@N08', $show_n = NULL, $size = NULL, $media = 'photos', $tags = '', $tags_user = '', $delta = 'true', $sort = 'unsorted', $heading = 'p', $min_title = NULL, $min_metadata = NULL, $vocab_isset = 0, $filter = NULL) {
   // drupal_is_front_page() is added because it also can have arg(0) == 'node'.
   $cache = cache_get('flickr_block_' . $delta . '_' . $id . '_' . $tags . '_' . arg(0) . '_' . drupal_is_front_page());
   // If $delta is a number it is a block that could be cached.
diff --git a/flickr.install b/flickr.install
index f839883..db2b3fd 100644
--- a/flickr.install
+++ b/flickr.install
@@ -59,19 +59,63 @@ function flickr_schema() {
 }
 
 /**
- * Implements hook_update().
+ * Create new index 'license' on the variable 'flickr_info_overlay'.
  */
 function flickr_update_7001() {
-  // Create new index on variable 'flickr_info_overlay' without altering others.
   $overlay = variable_get('flickr_info_overlay', array(
     'title' => 'title',
     'metadata' => 'metadata',
     'description' => 'description',
-  ));
-  variable_set('flickr_info_overlay', array(
-    'title' => $overlay['title'],
-    'metadata' => $overlay['metadata'],
-    'description' => $overlay['description'],
     'license' => 0,
   ));
+  if (!isset($overlay['license'])) {
+    variable_set('flickr_info_overlay', array(
+      'title' => 'title',
+      'metadata' => 'metadata',
+      'description' => 'description',
+      'license' => 0,
+    ));
+  }
+}
+
+/**
+ * Create new indexes on all block variables without altering others.
+ */
+function flickr_update_7102() {
+  foreach (range(0, 16) as $delta) {
+    $block_vars = variable_get("flickr_block_{$delta}");
+    $block_vars['user_id'] = isset($block_vars['user_id']) ? $block_vars['user_id'] : '';
+    $block_vars['show_n'] = isset($block_vars['show_n']) ? $block_vars['show_n'] : variable_get('flickr_photos_per_page', 6);
+    $block_vars['size'] = isset($block_vars['size']) ? $block_vars['size'] : variable_get('flickr_default_size_album', 'q');
+    $block_vars['tag'] = isset($block_vars['tag']) ? $block_vars['tag'] : '';
+    if (!isset($block_vars['group_id']) && !isset($block_vars['user_id'])) {
+      $block_vars['group_id'] = '';
+    }
+    else {
+      // In older versions user_id was used to hold the group_id.
+      $block_vars['group_id'] = (!isset($block_vars['group_id']) && isset($block_vars['user_id'])) ? $block_vars['user_id'] : $block_vars['group_id'];
+    }
+    $block_vars['photoset_id'] = isset($block_vars['photoset_id']) ? $block_vars['photoset_id'] : '';
+    $block_vars['sort'] = isset($block_vars['sort']) ? $block_vars['sort'] : 'unsorted';
+    $block_vars['filter'] = isset($block_vars['filter']) ? $block_vars['filter'] : '';
+    $block_vars['media'] = isset($block_vars['media']) ? $block_vars['media'] : 'photos';
+    $block_vars['vocab'] = isset($block_vars['vocab']) ? $block_vars['vocab'] : '';
+    $block_vars['min_title'] = isset($block_vars['min_title']) ? $block_vars['min_title'] : variable_get('flickr_title_suppress_on_small', '100');
+    $block_vars['min_metadata'] = isset($block_vars['min_metadata']) ? $block_vars['min_metadata'] : variable_get('flickr_metadata_suppress_on_small', '150');
+    variable_set('flickr_block_' . $delta, array(
+      'user_id' => $block_vars['user_id'],
+      'show_n' => $block_vars['show_n'],
+      'size' => $block_vars['size'],
+      'tag' => $block_vars['tag'],
+      'group_id' => $block_vars['group_id'],
+      'photoset_id' => $block_vars['photoset_id'],
+      'sort' => $block_vars['sort'],
+      'filter' => $block_vars['filter'],
+      'media' => $block_vars['media'],
+      'vocab' => $block_vars['vocab'],
+      'min_title' => $block_vars['min_title'],
+      'min_metadata' => $block_vars['min_metadata'],
+    ));
+    unset($block_vars);
+  }
 }
