Form Default Values missing on theming form Long story short when doing some basic theming on a drupal form the default / previously saved values refuse to display within the form fields (works without theming of course).  In the code exerpt below we are simply taking some for fields and sticking them into a drupal table to better organize the overall page.  This is within the hook_form_alter() framework.

$form['top'] = array(
  '#theme' =&gt; 'table',
  '#header' =&gt; array(array('data' =&gt; $form['#node']-&gt;title, 'style' =&gt; 'text-align: center; font-size: 1.6em; color:#333399; margin:1em 0; background: transparent; border: 1px solid #FFF; border-bottom: 3px solid #CCCCCC;', 'colspan' =&gt; 2,),),
  '#rows' =&gt; array(array(drupal_render($form['title']), drupal_render($form['field_order_id']),),),
  '#weight' =&gt; -8,
); 


The form correctly outputs the form items and submits correctly, all that is missing is the default / previously saved values.  Nothing around the internet seems to have a workable solution either.
See examples for developers. You should not theme form in form alter hook. Do it in hook_theme(). In a module it looks like that:

function yourmodule_theme() {
  return array(
    'yourmodule_form' =&gt; array(
      'render element' =&gt; 'form',
      'file' =&gt; 'forms/yourmodule_form.inc',
    ),
  );
}


If you move elements around in form_alter(), they became different fields. If #tree is set to false (default), it does not interfere with submit, but it may interfere with defaults and validation.