In this paper, we study the 3-D container packing problem. The problem is divided into box selection, space selection, box orientation and new space generation sub-problems. As a first step, a basic heuristic is devised. From results using this heuristic, problems are categorized as homogeneous and heterogeneous. Two augmenting heuristics are then formulated to deal with these categories. They are complementary in their capabilities in dealing with a range of practical problems, and in terms of their computational consumption. Results using our algorithms exceed the benchmark by 4.5% on average.