Saving and reusing previously constructed plans is largely regarded as a promising approach to deal with the intractability of domain-independent planning. But it has been shown that syntactically matching a new problem with a candidate case is NP-hard, and modifying a plan to suit a new problem can be strictly more difficult than generating a plan from scratch. We present a case-based planning system that does not involve any plan modification and performs case matching very efficiently. The planning performance of a default planner is learned in a training phase, and given a new problem, the learned knowledge is exploited to retrieve a good case from the library, and thereby reducing the initial problem to two simpler ones, which should be computationally less expensive to solve. The effectiveness of the system hinges mainly on the learning strategy used and on extraction of relevant problem features.