Google Maps : markers not removed as expected

Here is an even simpler example, using just a button to remove markers. On the screen, only one marker (the first) is removed. Expected is that all markers are removed.
Versions:
Latest Chrome browser.
Vaadin 7.4.0
googlempas add-on: 1.0.0
Tomcat 7

package com.buluschek.distancemap;

import java.util.ArrayList;
import java.util.List;

import javax.servlet.annotation.WebServlet;

import com.vaadin.annotations.Theme;
import com.vaadin.annotations.VaadinServletConfiguration;
import com.vaadin.data.Property;
import com.vaadin.data.Property.ValueChangeEvent;
import com.vaadin.server.VaadinRequest;
import com.vaadin.server.VaadinServlet;
import com.vaadin.shared.ui.slider.SliderOrientation;
import com.vaadin.tapio.googlemaps.GoogleMap;
import com.vaadin.tapio.googlemaps.client.LatLon;
import com.vaadin.tapio.googlemaps.client.overlays.GoogleMapMarker;
import com.vaadin.ui.Button;
import com.vaadin.ui.Slider;
import com.vaadin.ui.UI;
import com.vaadin.ui.VerticalLayout;
import com.vaadin.ui.Button.ClickEvent;

@SuppressWarnings("serial")
@Theme("distancemap")
public class DistancemapUI extends UI {

    @WebServlet(value = "/*", asyncSupported = true)
    @VaadinServletConfiguration(productionMode = false, ui = DistancemapUI.class, widgetset = "com.buluschek.distancemap.widgetset.DistancemapWidgetset")
    public static class Servlet extends VaadinServlet {
    }

    private final List<GoogleMapMarker > markers = new ArrayList<GoogleMapMarker>();

    @Override
    protected void init(VaadinRequest request) {
        final VerticalLayout layout = new VerticalLayout();
        layout.setMargin(true);
        setContent(layout);

        // Creating 20 markers at different positions
        for (int i = 0; i < 20; i++) {
            GoogleMapMarker googleMapMarker = new GoogleMapMarker("Mark " + i, new LatLon(50+(i % 3), i), false, null);
            markers.add(googleMapMarker);
        }

        final GoogleMap googleMap = new GoogleMap(null, null, "english");
        googleMap.setSizeFull();
        googleMap.fitToBounds(new LatLon(53, 20), new LatLon(50, 0));

        // Adding all markers
        for (GoogleMapMarker marker : markers) {
            googleMap.addMarker(marker);
        }

        // On button click remove all markers
        Button button = new Button("Remove markers");
        button.addClickListener(new Button.ClickListener() {
            @Override
            public void buttonClick(ClickEvent event) {
                for (GoogleMapMarker marker : markers) {
                    googleMap.removeMarker(marker);
                }
            }
        });
        layout.addComponent(googleMap);
        layout.addComponent(button);
    }
}