An apparatus (601, 104) for performing beamforming optimization for a distributed multiple-in multiple-out, MIMO, architecture, the apparatus comprising: at least one processor; and at least one memory including computer program code, the at least one memory and the computer program code being configured, with the at least one processor, to cause the apparatus to perform: maintaining, channel state information of a plurality of radio channels, wherein each of the plurality of radio channels is between one of two or more radio units of a distributed access node and one of a plurality of terminal devices (100, 102) and the channel state information comprises first and second order statistics of the plurality of radio channels; calculating, separately for each of the two or more radio units using an eigenbeamforming scheme, first sets of beamforming weights for forming beams for transmitting from a corresponding remote radio unit to each of a plurality of terminal devices based on the second order statistics associated with the corresponding radio unit; performing, for each terminal device of the plurality of terminal devices, single-user MIMO optimization between the two or more radio units at least to maximize a pre-defined metric based on all first sets of beamforming weights associated with transmission from the two or more radio units to a corresponding terminal device and on the first order statistics of radio channels between each of the two or more radio units and the corresponding terminal device, wherein the pre-defined metric is a mutual information metric or signal-to-interference-plus-noise, SINR, and a result of the single-user MIMO optimization, for each terminal device, is a second set of beamforming weights to be applied for transmission to said terminal device; and causing transmitting data, from the two or more radio units to the plurality of terminal devices, using beams formed by applying both first and second sets of optimized beamforming weights at the two or more radio units. at least one processor; and at least one memory including computer program code, the at least one memory and the computer program code being configured, with the at least one processor, to cause the apparatus to perform: maintaining, channel state information of a plurality of radio channels, wherein each of the plurality of radio channels is between one of two or more radio units of a distributed access node and one of a plurality of terminal devices (100, 102) and the channel state information comprises first and second order statistics of the plurality of radio channels; calculating, separately for each of the two or more radio units using an eigenbeamforming scheme, first sets of beamforming weights for forming beams for transmitting from a corresponding remote radio unit to each of a plurality of terminal devices based on the second order statistics associated with the corresponding radio unit; performing, for each terminal device of the plurality of terminal devices, single-user MIMO optimization between the two or more radio units at least to maximize a pre-defined metric based on all first sets of beamforming weights associated with transmission from the two or more radio units to a corresponding terminal device and on the first order statistics of radio channels between each of the two or more radio units and the corresponding terminal device, wherein the pre-defined metric is a mutual information metric or signal-to-interference-plus-noise, SINR, and a result of the single-user MIMO optimization, for each terminal device, is a second set of beamforming weights to be applied for transmission to said terminal device; and causing transmitting data, from the two or more radio units to the plurality of terminal devices, using beams formed by applying both first and second sets of optimized beamforming weights at the two or more radio units. maintaining, channel state information of a plurality of radio channels, wherein each of the plurality of radio channels is between one of two or more radio units of a distributed access node and one of a plurality of terminal devices (100, 102) and the channel state information comprises first and second order statistics of the plurality of radio channels; calculating, separately for each of the two or more radio units using an eigenbeamforming scheme, first sets of beamforming weights for forming beams for transmitting from a corresponding remote radio unit to each of a plurality of terminal devices based on the second order statistics associated with the corresponding radio unit; performing, for each terminal device of the plurality of terminal devices, single-user MIMO optimization between the two or more radio units at least to maximize a pre-defined metric based on all first sets of beamforming weights associated with transmission from the two or more radio units to a corresponding terminal device and on the first order statistics of radio channels between each of the two or more radio units and the corresponding terminal device, wherein the pre-defined metric is a mutual information metric or signal-to-interference-plus-noise, SINR, and a result of the single-user MIMO optimization, for each terminal device, is a second set of beamforming weights to be applied for transmission to said terminal device; and causing transmitting data, from the two or more radio units to the plurality of terminal devices, using beams formed by applying both first and second sets of optimized beamforming weights at the two or more radio units.