In this paper, we consider a two-dimensional (2D) packing problem. It consists of packing a given set of rectangular items either into a strip with a fixed width and infinite height or into identical bins. This problem has industrial applications such as cutting glass and Very-Large-Scale Integration (VLSI) design. The guillotine constraint is imposed in this paper. For this problem, we propose some strategies to improve the Shelf Heuristic Filling (SHF) introduced by Ben Messaoud et al. (2003). In a second part, we present a branch-and-bound algorithm for the 2D Strip Packing (2SP) problem that uses a new lower bound and the improved heuristic. All our algorithms are tested on generated and literature-based instances and give good results compared to the existing algorithms.