Several recent papers describe algorithms for generating conditional and/or probabilistic plans. In this paper, we synthesize this work, and present a unifying algorithm that incorporates and clarifies the main techniques that have been developed in the previous literature. Our algorithm decouples the search-control strategy for conditional and/or probabilistic planning from the underlying plan-refinement process. A similar decoupling has proven to be very useful in the analysis of classical planning algorithms, and we suspect it can be at least as useful here, where the search-control decisions are even more crucial. We describe an extension of conditional, probabilistic planning, to provide candidates for decision-theoretic assessment, and describe the reasoning about failed branches and side-effects that is needed for this purpose.