A method for controlling the release of at least one therapeutically, prophylactically and/or diagnostically active substance into an aqueous medium by erosion of at least one surface of a pharmaceutical composition. The method comprises adjusting the concentration and/or the nature of the ingredients making up the matrix composition in such a manner so as to obtain an approximately zero order release oil the active substance from the pharmaceutical composition when subject to an in vitro dissolution test as described herein. The composition comprises i) a matrix composition comprising a) a polymer or a mixture of polymers that may be substantially water soluble and/or crystalline, b) an active substance and, optionally, c) one or more pharmaceutically acceptable excipients, and ii) a coating. Typical polymers are PEO. The coating comprises a first cellulose derivative which is substantially insoluble in the aqueous medium, and at least one of a) a second cellulose derivative which is soluble or dispersible in water, b) a plasticizer, and c) a filler. The active ingredient may be carvedilol. Stable solid dispersions of active substances having low water solubility are also disclosed.