Lindstrom theorems for fragments of first-order logic (Logical Methods in Computer Science, 2009)