         )
         popup.openPopup() if @popUpID == id
 
-        return
+        return marker
     })
+
+    # https://github.com/stefanocudini/leaflet-layerJSON/issues/19
+    oldOnRemove = @photoLayer.onRemove.bind(@photoLayer)
+    @photoLayer.onRemove = (map)->
+      oldOnRemove(map)
+      @._markersCache = {}
 
   buildCollistionLayer: =>
     lookup = {

      propertyItems: 'features'
      propertyLoc: 'geometry.coordinates'
      caching: false
      updateMarkers: false
      minShift: 10
      hashGenerator: (data) ->
        data.id
      dataToMarker: (data)->
        L.geoJson(data,
        pointToLayer: featurePointToLayer

      propertyItems: 'features'
      propertyLoc: 'geometry.coordinates'
      locAsGeoJSON: true
      propertyId: 'properties.id'
      minShift: 10
      caching: false
      dataToMarker: (feature, latlng) =>
        iconProperties = feature.properties.iconProperties
        iconProperties.iconUrl = CONSTANTS.geocoder.cyclestreetsUrl + iconProperties.iconUrl
        iconProperties.shadowUrl = CONSTANTS.geocoder.cyclestreetsUrl + iconProperties.shadowUrl
        icon = new L.Icon(iconProperties)
        marker = new L.marker(latlng, {icon: icon})
        # Declarations
        id = feature.properties.id
        latitude = feature.geometry.coordinates[1]
