diff --git a/opengraph_meta.common.inc b/opengraph_meta.common.inc
index 6d990a4..203b814 100644
--- a/opengraph_meta.common.inc
+++ b/opengraph_meta.common.inc
@@ -202,6 +202,10 @@ class OpenGraphMeta {
       $row = $ret;
     }
 
+    // Multiple images are allowed, so don't collapse that one.
+    $images = array_values($data['image']);
+    unset($data['image']);
+
     // collapse data tree into 1-D array
     $collapsed_data = new stdClass(); // needed to work around pass-by-reference deprecation warning for array_walk_recursive
     $collapsed_data->keys = array();
@@ -209,6 +213,8 @@ class OpenGraphMeta {
     array_walk_recursive($data, create_function('$val, $key, $obj', 'array_push($obj->keys, $key); array_push($obj->values, $val);'), $collapsed_data);
     $collapsed_data = array_combine($collapsed_data->keys, $collapsed_data->values);
 
+    $collapsed_data['image'] = serialize($images);
+    
     foreach ($this->get_og_tag_defaults() as $field => $_d) {
       $row->$field = isset($collapsed_data[$field]) ? $collapsed_data[$field] : '';
     }
@@ -228,7 +234,12 @@ class OpenGraphMeta {
     if (FALSE !== $row) {
       foreach ($fields as $field => &$val) {
         if (isset($row->$field))
-          $val = $row->$field;
+          if (is_array(unserialize($row->$field))) {
+            $val = unserialize($row->$field);
+          }
+          else {
+            $val = $row->$field;
+          }
       }
     }
 
@@ -242,6 +253,13 @@ class OpenGraphMeta {
     foreach ($allfields as $field => $_d) {
       $v = !empty($opengraph_data[$field]) ? $opengraph_data[$field] : $_d;
       if (!empty($v)) {
+        if (is_array($v) && $field == self::IMAGE) {
+          foreach ($v as $value) {
+            $value = url(ltrim($value,'/'), array('absolute' => TRUE));
+            $this->render_obj->add_meta('og:' . $field, $value);
+          }
+          continue;
+        }
         switch ($field) {
           case self::IMAGE:
             $v = url(ltrim($v,'/'), array('absolute' => TRUE));
@@ -293,7 +311,6 @@ class OpenGraphMeta {
       }
       libxml_use_internal_errors(FALSE); // turn libxml errors back on
     }
-
     return $ret;
   }
 
@@ -381,6 +398,9 @@ class OGMDrupalRender implements OGMRender {
         'content' => $content,
       ),
     );
+    if ($name == 'og:image') {
+      $name = $name . rand(0, 999);
+    }
     drupal_add_html_head($element, "opengraph_meta_$name");
   }
 }
diff --git a/opengraph_meta.module b/opengraph_meta.module
index 72bb6a5..b7ad55c 100644
--- a/opengraph_meta.module
+++ b/opengraph_meta.module
@@ -121,7 +121,7 @@ function opengraph_meta_form_alter(&$form, $form_state, $form_id) {
       }
       $form['opengraph_meta'][OpenGraphMeta::IMAGE] = array(
         '#title' => t('Thumbnail image'),
-        '#type' => 'radios',
+        '#type' => 'checkboxes',
         '#default_value' => !empty($node->opengraph_meta) ? $node->opengraph_meta[OpenGraphMeta::IMAGE] : '',
         '#description' => t('The thumbnail image that will get shown in e.g. a Facebook preview. If left unset then then the first available image will be used. If none available then the global fallback image will be used.'),
         '#options' => $image_selector_options,
