diff --git a/imagefield_zip.ahah.inc b/imagefield_zip.ahah.inc
index b7cdb9d..db117e6 100644
--- a/imagefield_zip.ahah.inc
+++ b/imagefield_zip.ahah.inc
@@ -156,7 +156,17 @@ function imagefield_zip_add_files_to_form($type_name, $field_name, $files) {
   drupal_alter('form', $data, 'imagefield_zip_js');
 
   // Add the new element at the right place in the (original, unbuilt) form.
-  $success = content_set_nested_elements($form, $field_name, $form_element[$field_name]);
+  if (function_exists('content_set_nested_elements')) {
+    content_set_nested_elements($form, $field_name, $form_element[$field_name]);
+  }
+  else {
+    if (module_exists('fieldgroup') && ($group_name = _fieldgroup_field_get_group($type['type'], $field_name))) {
+      $form[$group_name][$field_name] = $form_element[$field_name];
+    }
+    else {
+      $form[$field_name] = $form_element[$field_name];
+    }
+  }
 
   // Save the new definition of the form.
   $form_state['values'] = array();
diff --git a/imagefield_zip.module b/imagefield_zip.module
index 146a0ce..3d89dd3 100644
--- a/imagefield_zip.module
+++ b/imagefield_zip.module
@@ -182,7 +182,10 @@ function imagefield_zip_get_groups(&$form) {
         $field_rows[] = $name;
       }
     }
-    fieldgroup_order_fields_groups($group_rows, $groups, $field_rows);
+
+    if (function_exists('fieldgroup_order_fields_groups')) {
+      fieldgroup_order_fields_groups($group_rows, $groups, $field_rows);
+    }
   }
   return $groups;
 }
