This study hypothesizes that coal swelling is a heterogeneous process depending on the distribution of coal voids such as fractures, and that coal matrixes swell due to CO2 sorption while fractures are compressed in response. This explains why coal permeability reduces even when the effective stress on coal samples is kept constant. A dual porosity-dual permeability model, which separately accommodates gas flow and transport in the coal matrix (swelling component) and fracture systems (non-swelling component) and rigorously accommodates the role of mechanical deformations for a dual porosity continuum, was developed and applied to prove this hypothesis.We use observations of a CO2 flow-through experiment on coal constrained by X-ray CT to define the heterogeneous distribution of fracture porosity within the coal sample as a basis of mapping material properties for modeling. Matches between experimentally-measured and model-predicted ensemble permeabilities are excellent. More importantly, the model results illustrate the crucial role of heterogeneous swelling in generating swelling-induced reductions in permeability even when the fractured sample is mechanically unconstrained. These results prove that coal swelling is a heterogeneous process depending on the distribution of coal voids: matrix (swelling component) swells while fractures (non-swelling component) are compacted in response. (C) 2011 Elsevier B.V. All rights reserved.