Given matrices A and B and vectors a, b, c and d, all with non-negative entries, we consider the problem of computing min{cTx:x∈Z+n,Ax≥a, Bx≤b,x≤d}. We give a bicriteria-approximation algorithm that, given ε∈(0,1], finds a solution of cost O(ln(m)/ε2) times optimal, meeting the covering constraints (Ax≥a) and multiplicity constraints (x≤d), and satisfying Bx≤(1+ε)b+β, where β is the vector of row sums βi=∑jBij. Here m denotes the number of rows of A. This gives an O(lnm)-approximation algorithm for CIP - minimum-cost covering integer programs with multiplicity constraints, i.e., the special case when there are no packing constraints Bx≤b. The previous best approximation ratio has been O(ln(maxj∑iAij)) since 1982. CIP contains the set cover problem as a special case, so O(lnm)-approximation is the best possible unless P=NP. © 2005 Elsevier Inc. All rights reserved.