diff --git a/cck_time.module b/cck_time.module
index 01e5e20..e0619b1 100644
--- a/cck_time.module
+++ b/cck_time.module
@@ -322,3 +322,52 @@ function theme_cck_time_select($variables) {
     //that one moves the fieldset declaration in here
     return $variables['element']['#children'];
 }
+
+/**
+ * Implements hook_feeds_processor_targets_alter().
+ */
+function cck_time_feeds_processor_targets_alter(&$targets, $entity_type, $bundle_name) {
+  foreach (field_info_instances($entity_type, $bundle_name) as $name => $instance) {
+    $info = field_info_field($name);
+    if ($info['type'] == 'cck_time') {
+      $targets[$name] = array(
+        'name' => $instance['label'],
+        'callback' => 'cck_time_feeds_set_target',
+        'description' => t('The @label field of the node.', array('@label' => $instance['label'])),
+      );
+    }
+  }
+}
+
+/**
+ * Feeds target mapper for time field.
+ */
+function cck_time_feeds_set_target($source, $entity, $target, $value) {
+  if (!is_array($value)) {
+    $value = array($value);
+  }
+
+  $info = field_info_field($target);
+
+  // Iterate over all values.
+  $field = isset($entity->$target) ? $entity->$target : array();
+  foreach ($value as $k => $v) {
+    if (!is_array($v) && !is_object($v)) {
+      $time = strtotime($v);
+      if ($info['settings']['format'] == '12') {
+        $field['und'][$k] = array(
+            'hour' => date('g', $time),
+            'meridiem' => date('A', $time),
+          );
+      }
+      else {
+        $field['und'][$k]['hour'] = date('G', $time);
+      }
+      $field['und'][$k]['minute'] = date('i', $time);
+    }
+    if ($info['cardinality'] <= $k) {
+      break;
+    }
+  }
+  $entity->{$target} = $field;
+}
\ No newline at end of file
