This paper presents elastic transactions, a variant of the transactional model. Upon conflict detection, an elastic transaction might drop what it did so far within a separate transaction that immediately commits, and initiate a new transaction which might itself be elastic. Elastic transactions are a complementary alternative to traditional transactions, particularly appealing when implementing search structures. Both forms of transactions can safely be combined within the same application. We implemented software support for elastic transactions and evaluated them on four common data structure applications, namely linked list, skip list, red-black tree and hash table. Our implementation is faster than a state-of-the-art software transactional memory in various workloads and with an improvement of 36% on average. It also presents an improvement over lock-based solutions of 89% on average.