diff --git sites/all/modules/content_profile/content_profile.module sites/all/modules/content_profile/content_profile.module
index 115c2aa..cf1afb5 100644
--- sites/all/modules/content_profile/content_profile.module
+++ sites/all/modules/content_profile/content_profile.module
@@ -233,6 +233,32 @@ function content_profile_form_alter(&$form, $form_state, $form_id) {
   elseif ($form_id == 'user_profile_form') {
     $form['#redirect'] = 'user/'. $form['_account']['#value']->uid;
   }
+  elseif($form_id == 'content_field_overview_form' && is_content_profile($form['#type_name'])) {
+    $form['#validate'][] = 'admin_content_field_validate';
+  }
+}
+
+// workaround for http://drupal.org/node/328217
+function admin_content_field_validate($form, &$form_state) {
+  $title_weight = $form_state['values']['title']['weight'];
+  dpm($form);
+  dpm($form_state);
+  if(isset($form['#fields'])) {
+    foreach($form['#fields'] as $field_name) {
+      $field_weight = $form_state['values'][$field_name]['weight'];
+      if($field_weight < 0 && $field_weight > $title_weight) {
+        $form_state['values'][$field_name]['weight'] = abs($field_weight);
+      }
+    }
+  }
+  if(isset($form['#groups'])) {
+    foreach($form['#groups'] as $group_name) {
+      $group_weight = $form_state['values'][$group_name]['weight'];
+      if($group_weight < 0 && $group_weight > $title_weight) {
+        $form_state['values'][$group_name]['weight'] = abs($group_weight);
+      }
+    }
+  }
 }
 
 /**
