This paper presents a selective CPS transformation for a program that uses delimited continuation constructs, shift and reset, introduced by Danvy and Filinski in a typed setting. By selectively CPS-transforming a program, we can execute a program with shift and reset in the standard functional language without support for control operators. We introduce a constraint-based type inference system that annotates the parts that are captured by shift and thus require CPS transformation. We show that the best annotation does not exist in general, and present a constraint solving algorithm that is reasonably efficient. The selective CPS transformation is defined over annotated terms and its correctness is proven. Finally, experimental results show that selective CPS transformation does improve the performance compared to the standard CPS transformation.