I have actually never needed to use a template file for a form. As far as I can see, Drupal core code uses theme functions, when a form, or part of a form needs to be rendered in a particular way; a theme function that calls [drupal_render()](http://api.drupal.org/api/drupal/includes--common.inc/function/drupal_render/6) is normally enough for any purposes. To reply to the question, creating a template file for a form is not different from creating a template file that is not for a form. Define a theme function, using as theme function the name of the form builder callback. The code should be similar to the following: /** * Implementation of hook_theme(). */ function mymodule_theme() { return array( 'mymodule_form' => array( 'template' => 'mymodule-form', 'file' => 'mymodule.admin.inc', 'arguments' => array('form' => NULL), ), ); } If the form contains the value `$form['field_1']`, its value will be available in the template file as `$field_1`. The template file will be also able to use any values passed from `template_preprocess_mymodule_form()`.