How to set multiple error messages with form_set_error?
I would change the code to issue a single call to form_set_error() per element:

$errors = array();
if (strpos($form_state["values"]["body"], "&lt;h1") === true)
    $error_messages["body"][] = "Blalalabalbal bablalbabla.";

if (strpos($form_state["values"]["body"], "&lt;h3") === false)
    $error_messages["body"][] = "Do this do that balbablalba.";

foreach ($error_messages as $element =&gt; $messages) {
    form_set_error($element, theme('item_list', array('items' =&gt; messages)));
}