diff --git a/sites/all/modules/ds/ds.module b/sites/all/modules/ds/ds.module
index b037c32..b08ec37 100644
--- a/sites/all/modules/ds/ds.module
+++ b/sites/all/modules/ds/ds.module
@@ -22,6 +22,7 @@ define('DS_FIELD_TYPE_IGNORE', 4);
 define('DS_FIELD_TYPE_CODE', 5);
 define('DS_FIELD_TYPE_BLOCK', 6);
 define('DS_FIELD_TYPE_GROUP', 7);
+define('DS_FIELD_TYPE_MULTIGROUP', 8);
 
 /**
  * Constants for field statuses.
@@ -218,7 +219,7 @@ function ds_build_fields_and_regions(&$object, $module) {
         if (isset($field_settings[$key]['css-class']) && !empty($field_settings[$key]['css-class'])) {
           $class .= ' '. $field_settings[$key]['css-class'];
         }
-        if ($field['type'] == DS_FIELD_TYPE_GROUP) {
+        if ($field['type'] == DS_FIELD_TYPE_GROUP || $field['type']) {
           $class .= ' field-group';
         }
 
@@ -244,6 +245,10 @@ function ds_build_fields_and_regions(&$object, $module) {
           $format = (isset($field_settings[$parent]['format'])) ? $field_settings[$parent]['format'] : 'ds_group_fieldset';
           $ds_fields[$parent]['theme'] = $format;
           $ds_groups[$parent][$key] = $weight;
+					//Support Multigroup 
+          if($fields[$parent]['type'] == DS_FIELD_TYPE_MULTIGROUP){
+           $ds_groups[$parent]['multigroup']= TRUE;
+          } 
         }
 
         // If the field has the storage key, it means the theming is
@@ -331,7 +336,8 @@ function ds_render_content($object, $module, $vars, $theme_function = 'ds_field'
   // Display settings for this module and object.
   $display_settings = variable_get($module .'_display_settings_'. $object->type, array());
   $region_styles = ds_default_value($display_settings, $object->build_mode, 'region_styles');
-
+	$field_settings = ds_default_value($display_settings, $object->build_mode, 'fields');
+	
   $all_regions = ds_regions('all', TRUE);
   $regions = $vars['regions'];
   $themed_regions = array();
@@ -367,13 +373,32 @@ function ds_render_content($object, $module, $vars, $theme_function = 'ds_field'
     foreach ($object->ds_groups as $group => $fields) {
       asort($fields);
       $group_content = '';
-      foreach ($fields as $key => $weight) {
-        $field_content = isset($vars[$key .'_rendered']) ? $vars[$key .'_rendered'] : '';
-        if (!empty($field_content)) {
-          $group_content .= theme($theme_function, $field_content, $object->ds_fields[$key]);
-          unset($object->ds_fields[$key]);
+      //Support for CCK-dev Multigroup
+      if($fields['multigroup']){
+        $group_content = ds_get_cck_multigroup_content($object, $group, $field_settings);
+        foreach($fields as $key => $weight){
+        	unset($object->ds_fields[$key]);
         }
-      }
+      }else{
+	    	foreach ($fields as $key => $weight) {
+	       	$field_content = '';
+	        //$field_content = isset($vars[$key .'_rendered']) ? $vars[$key .'_rendered'] : '';
+	        if(is_array($vars[$key])){
+	          foreach($vars[$key] as $row){
+		        	$field_content .=  content_format($key, $row);
+		        }		     
+            if (!empty($field_content)) {
+	          	$object->ds_fields[$key]['type'] = 'ds';
+	            $group_content .= theme($theme_function, $field_content, $object->ds_fields[$key]);
+	            unset($object->ds_fields[$key]);	        
+            }	  
+	        }else{
+            $field_content = isset($vars[$key .'_rendered']) ? $vars[$key .'_rendered'] : '';
+            $group_content .= $field_content;
+            unset($object->ds_fields[$key]);            
+          }      	        
+	      } 
+	    }
 
       // Store group_content as content key in group key of ds_fields.
       if (!empty($group_content)) {
@@ -729,3 +754,43 @@ function ds_import_default_data($module = '', $type = '', $build_mode = '') {
     ds_import_data($data, FALSE, FALSE, $module, $type, $build_mode);
   }
 }
+
+/**
+ * Function to return the html of cck-group field
+ * @param object $node contains a lot of information
+* @param string $group_name The name of the group
+*/
+function ds_get_cck_multigroup_content($node, $group_name, $field_settings){
+	$output = '';
+	$groups = array();
+	$group = array();
+	$instance = 0;
+	//remove 'multgroup' tag
+	foreach($node->ds_groups[$group_name] as $field => $weight){
+		if($field != 'multigroup'){
+			$groups[$weight]=$field;
+		}
+	}
+	//sort fields
+	ksort($groups);
+  foreach($groups as $weight => $field){
+  	$temp = array();
+  	foreach($node->$field as $row){
+  		$temp[] = content_format($field, $row, $field_settings[$field]['format']);
+  	}
+  	$instance= count($temp);
+  	$group[$field]= $temp;
+  }
+  if($instance != 0){
+	  for($i = 0; $i < $instance; $i++){
+	    $output .= "<div class='fieldset'>";
+	    foreach($groups as $weight => $field){
+	    	//set the type of the field to 'ds' inorder to render throught 'ds_field' theme.
+	    	$node->ds_fields[$field]['type'] = 'ds';
+	  		$output .= theme('ds_field', $group[$field][$i] , $node->ds_fields[$field]);
+	    }
+	  	$output .="</div>";
+	  }
+  }
+	return $output;
+}
\ No newline at end of file
diff --git a/sites/all/modules/ds/theme/theme_ui.inc b/sites/all/modules/ds/theme/theme_ui.inc
index 7f488e5..af07c77 100644
--- a/sites/all/modules/ds/theme/theme_ui.inc
+++ b/sites/all/modules/ds/theme/theme_ui.inc
@@ -119,8 +119,8 @@ function template_preprocess_ds_display_overview_form(&$vars) {
     }
 
     $row->label_class = 'label-field';
-    if ($element[$build_mode]['type']['#value'] == DS_FIELD_TYPE_GROUP) {
-      $row->label_class .= ' field-group';
+    if ($element[$build_mode]['type']['#value'] == DS_FIELD_TYPE_GROUP || $element[$build_mode]['type']['#value'] == DS_FIELD_TYPE_MULTIGROUP ) {
+          $row->label_class .= ' field-group';
       $row->class .= ' tabledrag-root';
     }
     else {
@@ -271,8 +271,8 @@ function template_preprocess_ds_display_overview_views_form(&$vars) {
     }
 
     $row->label_class = 'label-field';
-    if ($element[$build_mode]['type']['#value'] == DS_FIELD_TYPE_GROUP) {
-      $row->label_class .= ' field-group';
+    if ($element[$build_mode]['type']['#value'] == DS_FIELD_TYPE_GROUP || $element[$build_mode]['type']['#value'] == DS_FIELD_TYPE_MULTIGROUP) {
+          $row->label_class .= ' field-group';
       $row->class .= ' tabledrag-root';
     }
     else {
diff --git a/sites/all/modules/nd_contrib/nd_cck/nd_cck.module b/sites/all/modules/nd_contrib/nd_cck/nd_cck.module
index 5b54dd0..9f2dfde 100644
--- a/sites/all/modules/nd_contrib/nd_cck/nd_cck.module
+++ b/sites/all/modules/nd_contrib/nd_cck/nd_cck.module
@@ -51,20 +51,37 @@ function nd_cck_ds_fields($type_name, $build_mode, $extra) {
       $groups = fieldgroup_groups($type_name);
       if (!empty($groups)) {
         foreach ($groups as $key => $group) {
-          $fields[$key] = array(
-            'title' => $group['label'],
-            'type' => DS_FIELD_TYPE_GROUP,
-            'status' => DS_FIELD_STATUS_STATIC,
+					if($group['group_type'] == 'multigroup'){
+        		$fields[$key] = array(
+              'title' => $group['label'],
+              'type' => DS_FIELD_TYPE_MULTIGROUP,
+              'status' => DS_FIELD_STATUS_STATIC,
+              'properties' => array(
+                'formatters' => array(
+                  'ds_field' => 'A simple div',
+                  'ds_group_fieldset_open' => 'Fieldset open',
+                  'ds_group_fieldset_collapsible' => 'Fieldset collapsible',
+                  'ds_group_fieldset_collapsed' => 'Fieldset collapsed',
+                ),
+							),
+            );
+        		
+        	}else {
+	          $fields[$key] = array(
+	            'title' => $group['label'],
+	            'type' => DS_FIELD_TYPE_GROUP,
+	            'status' => DS_FIELD_STATUS_STATIC,
             'properties' => array(
-              'formatters' => array(
+	              'formatters' => array(
                 'ds_field' => 'A simple div',
                 'ds_group_fieldset_open' => 'Fieldset open',
-                'ds_group_fieldset_collapsible' => 'Fieldset collapsible',
-                'ds_group_fieldset_collapsed' => 'Fieldset collapsed',
-              ),
-            ),
-          );
-
+               'ds_group_fieldset_collapsible' => 'Fieldset collapsible',
+	                'ds_group_fieldset_collapsed' => 'Fieldset collapsed',
+	              ),
+	            ),
+	          );
+        	}
+   
           // Tabs support.
           if (module_exists('tabs')) {
             $fields[$key]['properties']['formatters']['ds_tabs'] = 'Tabs';
@@ -202,7 +219,12 @@ function nd_cck_theme() {
       );
     }
   }
-
+	//Support Multigroup for CCK 3.3-dev
+  $theme_functions['nd_cck_multigroup'] =  array(
+		'arguments' => array ('element', 'group'),
+		'function' => 'theme_nd_cck_multigroup'
+	);  
+  
   return $theme_functions;
 }
 
diff --git a/sites/all/modules/nd_contrib/nd_cck/nd_cck.tpl.php b/sites/all/modules/nd_contrib/nd_cck/nd_cck.tpl.php
index c52384e..8dd00eb 100644
--- a/sites/all/modules/nd_contrib/nd_cck/nd_cck.tpl.php
+++ b/sites/all/modules/nd_contrib/nd_cck/nd_cck.tpl.php
@@ -43,7 +43,7 @@
       endforeach;?>
     </div>
   <?php else : ?>
-    <?php if ($label_display == 'inline') : ?><div class="field-label-inline-first"><?php print t($label) ?>:&nbsp;</div><?php endif; ?><?php print $items[0]['view'];?>
+    <?php if ($label_display == 'inline') : ?><div class="field-label-inline-first"><?php print t($label) ?>:&nbsp;</div><?php endif; ?><?php if(!isset($items[0])): print $items[1]['view']; else : print $items[0]['view']; endif;?>
   <?php endif; ?>
 </div>
 <?php endif; ?>
\ No newline at end of file
