Index: cck_fieldgroup_tabs/cck_fieldgroup_tabs.module
===================================================================
--- cck_fieldgroup_tabs/cck_fieldgroup_tabs.module	(revision 60)
+++ cck_fieldgroup_tabs/cck_fieldgroup_tabs.module	(working copy)
@@ -168,8 +168,26 @@
           $element['#weight'] = $group['weight'];
           // Title is required for tabs.
           $element['#title'] = t(check_plain($group['label']));
-          $node->content['fieldgroup_tabs'][$group_name] = $element;
-          unset($node->content[$group_name]);
+  
+          $sql = db_query("SELECT field_name FROM {content_node_field_instance} WHERE type_name = %d", $element['group']);
+          while($field = db_fetch_array($sql)){
+            foreach($field as $fields){         
+              if (
+                !empty($element['group'][$fields]['field']['items']['0']['#item']['value']) || //: for text
+                !empty($element['group'][$fields]['field']['items']['0']['#item']['nid']) || //: for node reference
+                !empty($element['group'][$fields]['field']['items']['0']['#item']['uid']) || //: for user reference
+                !empty($element['group'][$fields]['field']['items']['0']['#item']['view_id']) //: for view reference
+              ) {
+                $node->content['fieldgroup_tabs'][$group_name] = $element;
+                unset($node->content[$group_name]);
+              }
+            }
+          }
+  
+          // if there are no tabs we dont want to know anything about the variable fieldgroup_tabs
+          if (count($node->content['fieldgroup_tabs']) == 2) {
+            unset($node->content['fieldgroup_tabs']);
+          }
         }
       }
       if (isset($node->content['fieldgroup_tabs'])) {

