diff --git a/app/decorators/camaleon_cms/site_decorator.rb b/app/decorators/camaleon_cms/site_decorator.rb
index <HASH>..<HASH> 100644
--- a/app/decorators/camaleon_cms/site_decorator.rb
+++ b/app/decorators/camaleon_cms/site_decorator.rb
@@ -148,6 +148,7 @@ class CamaleonCms::SiteDecorator < CamaleonCms::TermTaxonomyDecorator
   def the_url(*args)
     args = args.extract_options!
     args[:site] = self
+    args[:host], args[:port] = object.get_domain.to_s.split(':') if !args[:as_path] && (h.current_site rescue false) != self # fix for different site of current visited site
     h.cama_current_site_host_port(args) unless args[:as_path]
     args[:locale] = @_deco_locale unless args.include?(:locale)
     postfix = 'url'
Fixed site.the_url called to different site from visited site