Traditional quantum error correction involves the redundant encoding of k quantum bits using n quantum bits to allow the detection and correction of any t bit error. The smallest general t = 1 code requires n = 5 for k = 1. However, the dominant error process in a physical system is often well known, thus inviting the question: given a specific error model, can more efficient codes be devised? We demonstrate new codes which correct just amplitude damping errors which allow, for example, a t = 1, k = 1 code using effectively n = 4.6. Our scheme is based on using bosonic states of photons in a finite number of optical modes. We present necessary and sufficient conditions for the codes, and describe construction algorithms, physical implementation, and performance bounds.