           if aTag && @leftMouseButton(event) && !@metakeyPressed(event) && @targetAttributeIsCurrentWindow(aTag) && @targetHostSame(aTag)
             href = aTag.attributes.href.nodeValue
             @log("Processing click", href)
+            if !@pushStateSupport && @hashchangeSupport && @hashBaseUrl && @hashBaseUrl != window.location.pathname
+              event.preventDefault();
+              window.location.href = @hashBaseUrl + "#!" + href
+              return
             if @exec(href)
               @log("New url", href)
               event.preventDefault();

    typeof value.length is 'number' and
    typeof value.splice is 'function' and
    not ( value.propertyIsEnumerable 'length' )


  renderInitialView: =>
    @log("Rendering initial page")
    initialUrl = window.location.pathname
    if @pushStateSupport
      if window.location.hash.substring(0, 2) == "#!" && @find(window.location.hash.substring(2))
        initialUrl = window.location.hash.substring(2)
    else
      if @hashchangeSupport
        if window.location.hash.substring(0, 2) == "#!"
          initialUrl = window.location.hash.substring(2)
    @renderUrl(initialUrl)

  renderUrl: (url) =>
    try
