diff --git a/office_hours.elements.inc b/office_hours.elements.inc
index 1f386ff..0d7bb8f 100644
--- a/office_hours.elements.inc
+++ b/office_hours.elements.inc
@@ -147,7 +147,6 @@ function _office_hours_block_validate($element, &$form_state) {
   if ($error_text) {
     $weekdays = date_week_days(TRUE);
     $error_text  = t('!weekday: ' . $error_text,   
-//                     array('!weekday' => $weekdays[$delta / 2],
                      array('!weekday' => $element['#dayname'],
                            '!start' => $limitstart . ':00' ,
                            '!end' =>$limitend . ':00',
diff --git a/office_hours.feeds.inc b/office_hours.feeds.inc
index 2159295..b1ae0a9 100644
--- a/office_hours.feeds.inc
+++ b/office_hours.feeds.inc
@@ -121,38 +121,38 @@ function office_hours_feeds_set_target($source, $entity, $target, $feed_element)
           case 'mon': //en
           case 'maa': //nl
           case 'man': //da
-            $sv_day = '2';
+            $sv_day = '1';
             break;
           case 'tue': //en
           case 'din': //nl
           case 'tir': //da
-            $sv_day = '4';
+            $sv_day = '2';
             break;
           case 'wed':
           case 'woe':
           case 'ons':
-            $sv_day = '6';
+            $sv_day = '3';
             break;
           case 'thu':
           case 'don':
           case 'tor':
-            $sv_day = '8';
+            $sv_day = '4';
             break;
           case 'fri':
           case 'vri':
           case 'fre':
-            $sv_day = '10';
+            $sv_day = '5';
             break;
           case 'sat':
           case 'zat':
           case 'lør':
-            $sv_day = '12';
+            $sv_day = '6';
             break;
         }
       }
       else {
-        // day is passed as day number: sunday: 1->0; monday: 2->2; tuesday: 3->4; etc.
-        $sv_day = ( $feed_element - 1 ) * 2 ;
+        // day is passed as day number: sunday: 1->0; monday: 2->1; tuesday: 3->2; etc.
+        $sv_day = ( $feed_element - 1 );
       }
 
 //      $sv_office_hours['day'] = $sv_day;
@@ -176,19 +176,19 @@ function office_hours_feeds_set_target($source, $entity, $target, $feed_element)
       $feed_element = str_replace( '.' , '' , $feed_element);
       switch ($start_end_field) {
         case 'start':
-            $entity->{$field_name}[$entity->language][$sv_index]['day'] = $sv_day + $morehours;
+            $entity->{$field_name}[$entity->language][$sv_index]['day'] = $sv_day;
             $entity->{$field_name}[$entity->language][$sv_index]['starthours'] = intval($feed_element);
 //          $sv_office_hours[$morehours]['starthours'] = intval($feed_element);
           break;
         case 'end':
-            $entity->{$field_name}[$entity->language][$sv_index]['day'] = $sv_day + $morehours;
+            $entity->{$field_name}[$entity->language][$sv_index]['day'] = $sv_day;
             $entity->{$field_name}[$entity->language][$sv_index]['endhours'] = intval($feed_element);
 //          $sv_office_hours[$morehours]['endhours'] = intval($feed_element);
           break;
         default:
-          // $feed_element contains both start and end
-          list($hours_start, $hours_end) = explode('-', $feed_element, 2);
-            $entity->{$field_name}[$entity->language][$sv_index]['day'] = $sv_day + $morehours;
+            // $feed_element contains both Start and End.
+            list($hours_start, $hours_end) = explode('-', $feed_element, 2);
+            $entity->{$field_name}[$entity->language][$sv_index]['day'] = $sv_day;
             $entity->{$field_name}[$entity->language][$sv_index]['starthours'] = intval($hours_start);
             $entity->{$field_name}[$entity->language][$sv_index]['endhours'] = intval($hours_end);
 //          $sv_office_hours[$morehours]['starthours'] = intval($hours_start);
diff --git a/office_hours.install b/office_hours.install
index a9d143e..bcd83c2 100644
--- a/office_hours.install
+++ b/office_hours.install
@@ -52,3 +52,12 @@ function office_hours_field_schema($field) {
  */
 //function office_hours_disable() {
 //}
+
+/**
+ * Change value of 'day' column from 0-13 range to normal 0-6 day range.
+ * This allows for more then 2 hours blocks per day.
+ */
+function office_hours_update_7100() {
+  _office_hours_update_7100_daynum();
+  return "Updated 'day' column of Office hours fields.";
+}
diff --git a/office_hours.module b/office_hours.module
index cb235d9..7ddbbab 100644
--- a/office_hours.module
+++ b/office_hours.module
@@ -74,14 +74,6 @@ function office_hours_property_info_callback(&$info, $entity_type, $field, $inst
   $property['property info']['day'] = array(
     'type' => 'integer',
     'label' => t('Day'),
-    'description' => 'Stores the day value',
-    'setter callback' => 'entity_property_verbatim_set',
-    'default' => 0,
-  );
-// @todo for 'multiple blocks per day': do we need this 'daynum' property?
-  $property['property info']['daynum'] = array(
-    'type' => 'integer',
-    'label' => t('Weekday'),
     'description' => "Stores the day of the week's numeric representation (0-6)",
     'setter callback' => 'entity_property_verbatim_set',
     'default' => 0,
@@ -109,8 +101,6 @@ function office_hours_property_info_callback(&$info, $entity_type, $field, $inst
  * 
  */
 function office_hours_form_field_ui_field_edit_form_alter(&$form, &$form_state, $form_id) {
-  // Fix the number of hour blocks to 'two per day'.
-  // IMPORTANT NOTE: if you do not select "Multiple values", you can enter only one day.
   if ($form['#field']['type'] == 'office_hours') {
     $description = t("This is unlimited by this field's nature. See below for limiting the number of blocks per day.");
     $form['field']['cardinality'] = array(
@@ -152,6 +142,7 @@ function office_hours_field_settings_form($field, $instance, $has_data) {
 
 // mar-2013: Conversion from (old) checkbox "Add more hours" to (new) selectlist.
 // @todo for 'multiple blocks per day': remove, after create hook_update_N().
+if (isset($settings['addhrs'])) {
   $form['addhrs'] = array(
 //    '#type' => 'checkbox',
     '#type' => 'hidden',
@@ -160,12 +151,11 @@ function office_hours_field_settings_form($field, $instance, $has_data) {
     '#default_value' => $settings['addhrs'],
     '#description' => t('Make it possible to use 2 hour block for each day instead of one.'),
   );
-// mar-2013: Conversion from (old) checkbox "Add more hours" to (new) selectlist.
-// @todo for 'multiple blocks per day': remove, after create hook_update_N().
   if (!is_null($settings['addhrs']) && $settings['addhrs'] == 0 && $settings['cardinality'] == 2) {
-    $form['addhrs']['#default_value'] = 1;
+    $form['addhrs']['#default_value'] = NULL;
     $form['cardinality']['#default_value'] = 1;
   }
+}
 
   $form['hoursformat'] = array(
     '#type' => 'select',
@@ -231,31 +221,6 @@ function office_hours_field_is_empty($item, $field) {
 }
 
 /**
- * Implements hook_field_load().
- *
- * Converts the database 'day' values from old value to new value.
- * This is to allow for >2 blocks per day.
- * Old system: 0,2,4,etc is first block of day, 1,3,5,etc is second.
- * New system: 'daynum' = 0-6, 'delta' is overall delta.
- * N.B. only $items should be changed.
- * 
- * NB. This hook is not called in the widget settings page. See http://drupal.org/node/1944678, 
- */
-function office_hours_field_load($entity_type, $entities, $field, $instances, $langcode, &$items, $age) {
-  foreach ($items as $object => $object_items) {
-    foreach ($object_items as $index => $item) {
-      $daynum = (int) ($item['day'] / 2);
-      $items[$object][$index]['daynum'] = $daynum;
-    }
-
-// @todo for 'multiple blocks per day': do the following in hook_field_load(). But only if it works in *_widget_form(), too.
-//    unset($items[$object]);
-//    $items[$object] = _office_hours_arrange_field_items($object_items);
-
-  }
-}
-
-/**
  * Implements hook_field_presave().
  *
  * Convert day key to a backend value:
@@ -270,8 +235,7 @@ function office_hours_field_presave($entity_type, $entity, $field, $instance, $l
   foreach ($items as $delta => $item) {
     // 1. Convert day to sunday based.
     $day = ($item['day'] + $first_day) % 7;
-    // 2. Convert to 14 days base.
-    $items[$delta]['day'] = ($day * 2);
+    $items[$delta]['day'] = (int) $day;
   }
 }
 
@@ -544,7 +508,7 @@ function office_hours_field_formatter_view($entity_type, $entity, $field, $insta
   foreach (element_children($items) as $key => $arraykey) {
     $el  = $items[$arraykey];
 
-    $day = $el['daynum'];
+    $day = $el['day'];
     $start = check_plain($el['starthours']);
     $end   = check_plain($el['endhours']);
 
@@ -808,14 +772,15 @@ function _office_hours_limit_hours($hours, $limitstart=0, $limitend=25) {
  *   daydelta.
  */
 function _office_hours_arrange_field_items($items) {
-// todo: remove day and daynum from items.
+// @todo: remove day from items.
   $values = array_fill_keys(array(0, 1, 2, 3, 4, 5, 6), array());
   foreach ($items as $index => $item) {
-    $daynum = (int) ($item['day'] / 2);
-    $items[$index]['daynum'] = $daynum;
-    $values[$daynum][] = $item;
+    $values[(int)$item['day']][] = $item;
   }
 
+  // @todo: move this to theming, so we don't need hook_presave().
+  // @todo: test if changing the first_day_of_week works both on node_edit 
+  //        and default values on field_settings page.
   // Reorder weekdays to match the first day of the week, using variable_get('date_first_day');
   $values = date_week_days_ordered($values);
 
@@ -1054,3 +1019,99 @@ function _office_hours_views_field_views_data($field) {
     return array($table_alias => $data);
 }
  */
+
+/*
+ * Helper function for hook_update_N.
+ * Change value of 'day' column from 0-13 range to normal 0-6 day range.
+ * This allows for more then 2 hours blocks per day.
+ */
+function _office_hours_update_7100_daynum() {
+// Step 1: Collect field_ids for office hours fields.
+  $ids = array();
+  $fields = field_read_fields();
+  foreach ($fields as $field) {
+    if ($field['type'] == 'office_hours') {
+      $ids[] = $field['id'];
+    }
+  }
+
+  if (empty($ids)) {
+    return;
+  }
+
+// Step 2: Collect fields fo type 'office_hours' via id.
+  $oh_fields = array();
+  $instances = field_info_instances();
+  foreach ($instances as $entity => $bundles) {
+    foreach ($bundles as $bundle => $fields) {
+      foreach ($fields as $field_name => $field) {
+        // Check each field for the correct $field_id
+        foreach ($ids as $key => $id) {
+          if ($field['field_id'] == $id) {
+            $oh_fields[$field['id']] = $field;
+          }
+        }
+      }
+    }
+  }
+
+// Step 3: Update entities.
+  foreach ($oh_fields as $id => $field) {
+    $entity_type = $field['entity_type'];
+    $bundle = $field['bundle'];
+    $field_id = $field['field_id'];
+    $field_name = $field['field_name'];
+
+    unset($entities);
+    $query = new EntityFieldQuery();
+    $entities = $query
+      ->entityCondition('entity_type', $entity_type)
+      ->entityCondition('bundle', $bundle)
+      ->execute();        
+
+    // Remove extra layer from data structure.
+    $entities = $entities[$entity_type];
+    ksort($entities);
+
+    // We may run in time problems. Allow restart using a variable.
+    $id = -1;
+    $latest_id = variable_get('office_hours-' . $entity_type . '-' . $bundle . '-' . $field_id , $id);
+
+    // Convert the 'day' column to from 0-13 to 0-6 day range.
+    foreach ($entities as $id => $entity) {
+      if ($id > $latest_id) {
+        $full_entities = array($id => $entity);
+        field_attach_load($entity_type, $full_entities, FIELD_LOAD_CURRENT, array('field_id' => $field_id));
+        foreach ($full_entities as $id => $full_entity) {
+          $entity_field = &$full_entity->{$field_name};
+          foreach ($entity_field as $langcode => &$items) {
+            foreach ($items as $index => &$item) {
+              $item['day'] = (int) ($item['day'] / 2);
+            }
+          }
+        }
+//if ($id == 30888) {
+//if ($id == 110780) {
+//dpm($full_entity);
+        // Prevent core-error #985642, which should be fixed per D7.22
+        $full_entity->original = $full_entity;
+
+        field_attach_presave($entity_type, $full_entity);
+        field_attach_update($entity_type, $full_entity);
+        variable_set('office_hours-' . $entity_type . '-' . $bundle . '-' . $field_id , $id);
+      }
+//}
+    }
+  }
+
+  // If we did not break, remove variables.
+  foreach ($oh_fields as $id => $field) {
+    $entity_type = $field['entity_type'];
+    $bundle = $field['bundle'];
+    $field_id = $field['field_id'];
+    $field_name = $field['field_name'];
+    variable_del('office_hours-' . $entity_type . '-' . $bundle . '-' . $field_id);
+  }
+
+  return;
+}
