Trying to get my form_alter function to be more specific I'm hiding access to a specific fieldset within the Support Ticketing System module add a ticket page. I use a form_alter preprocess function to find the page's form id as such:

drupal_set_message($form_id); 


I discover the ID is:

support_ticket_node_form


... perfect so I do:

function MYTHEME_support_ticket_node_form_form_alter(&amp;$form,$form_state,$form_id){
  $form['subscribe']['#access'] = FALSE;
}


... to hide that but the fieldset does not get hidden. 

However, if I do a generic form_alter:

function MYTHEME_form_alter(&amp;$form, &amp;$form_state, $form_id) {
    $form['subscribe']['#access'] = FALSE;
}


... That works, the fieldset is now hidden on the page. The only thing I could think of that I am doing wrong is that it seems odd to have form_form_alter as part of the string but one is from the form ID and the other is part of the function so it should be working. Not sure what i am doing wrong. I'm guessing the generic form_alter that works for me could be dangerous as it lacks specificity and could cause issues down the road so I'd like to get this sorted out.
The hook for specific form ID's is hook_form_FORM_ID_alter() (at the moment you're using something more like hook_FORM_ID_form_alter()). You should just need to change the name of the function to:

function MYTHEME_form_support_ticket_node_form_alter(&amp;$form, &amp;$form_state, $form_id) {
  // ...
}


and clear the caches.