Invalid Smarty syntax

Incorrect widget

Check if you widget has correctly filled id. And css class name cannot by empty:
Incorrect:
{widget id=""}
{widget id="" class=""}
{widget id="firstname" class=""}


Correct: {widget id="firstname"} or {widget id="firstname" class="signupFirstname"}
 

Special character

The error "Invalid Smarty syntax" should appear when editing templates. The reason why it appeared is that you used some special character in it. This can happen when you use rich text editor (MS Word, ...) to edit you template text and then you copy and paste it into template edit block. To avoid this, please do not edit templates this way. Use only built in editor.
 

Special character after translation

Another reason is when you are trying to use some words as a language source, but it is not translated in your language and also there is some special character in it...
e.g.:
You are trying to use ##Buenos días## but such translation doesn't exist. Just remove ## to fix the problem. If you want it translated, then use translation from your language file...

 

Variables

Another reason of this error can be in wrong position of the Smarty variable - it can not be inside translation source
e.g:
wrong ##sign up at {$date}##

ok ##sign up at## {$date}
 

CSS style

If you are using css style in smarty templates, enclose it with {literal} {/literal} tags.
Example:
<style>
{literal}
body {
    background: none repeat scroll 0 0 #FFFFFF;
    font-family: Arial,Verdana;
}
#Content {    background-color#F5F5F5;    colortransparent;}
{/literal}
</style>
but in email templates is {literal} tag added automatically into <style></style> tags, therefore you should insert style tags without {literal} tags.