 <p>I ran into the same problem in Drupal 6 recently, and your question is valid. </p> <p>When I displayed the $form object (from <em>template.php</em>) using <a href="http://drupal.org/project/devel" rel="nofollow">Devel</a>'s dsm() function, I found that the buttons were somehow showing a weight of 0.0111, a float.</p> <p>The <strong>hook_theme()</strong> and then <strong>hook_form()</strong> in <em>template.php</em> seem to be behaving wrong. Using hook_form I made no changes to the $form object, and returning drupal_render($form) the Save/Preview buttons were at the top.</p> <p>To anyone that needs to use these hooks, you must ALSO create a <strong>form_alter</strong> where you set the weight of the buttons. This counteracts the bug and gets your buttons to the bottom again.</p> <pre><code> $form['buttons']['#weight'] = 100; </code></pre> <p>Note: I could not set the weight in my <strong>hook_form()</strong> code, it had to be in a <strong>form_alter</strong></p>