The effects of fluid substitution on P- and S-wave velocities in carbonates of complex texture are still not understood fully. The often-used Gassmann equation gives ambiguous results when compared with ultrasonic velocity data. We present theoretical modeling of velocity and attenuation measurements obtained at a frequency of for six carbonate samples composed of calcite and saturated with air, brine, and kerosene. Although porosities (2%–14%) and permeabilities are relatively low, velocity variations are large. Differences between the highest and lowest P- and S-wave velocities are about 18% and 27% for brine-saturated samples at 60 and effective pressure, respectively. S-wave velocities are measured for two orthogonal polarizations; for four of six samples, anisotropy is revealed. The Gassmann model underpredicts fluid-substitution effects by for three samples and by as much as 5% for the rest of the six samples. Moreover, when dried, they also show decreasing attenuation with increasing confining pressure. To model this behavior, we examine a pore model made of two pore systems: one constitutes the main and drainable porosity, and the other is made of undrained cracklike pores that can be associated with grain-to-grain contacts. In addition, these dried rock samples are modeled to contain a fluid-filled-pore system of grain-to-grain contacts, potentially causing local fluid flow and attenuation. For the theoretical model, we use an inclusion model based on the T-matrix approach, which also considers effects of pore texture and geometry, and pore fluid, global- and local-fluid flow. By using a dual-pore system, we establish a realistic physical model consistently describing the measured data.