Virtual synchronous machines (VSM) are inverters that behave towards the power grid like synchronous generators. Hence, they can be used as grid forming inverters and they can support the grid with inertia, droops, fault ride-through and more. Synchronverters are a much studied type of VSM. In this paper we present several improvements and innovations to the synchronverter control algorithm. We offer a complete design procedure for this algorithm. One change is meant to mitigate the fact that earlier designs are very sensitive to grid voltage measurement errors and processing delay, which may cause harmonic distortion and fluctuating amplitude of the grid-side currents. We propose to include a fast current controller as the internal control loop of the inverter. The design of this current controller involves delicate issues of compensating the delays and eliminating the DC components of the currents. The new design enables also a natural way for distortion-less current limitation. We present a smooth start?up procedure. Our simulations and experiments show that the current controller leads to a dramatic reduction of the sensitivity of the VSM to measurement errors, processing delay and grid voltage imbalance.