diff --git a/lib/refrepo/gen/puppet/templates/kavlan-dhcp.conf.erb b/lib/refrepo/gen/puppet/templates/kavlan-dhcp.conf.erb
index 300228050ad6aec571c7d0623bb8b312d71b0b3f..d87b5f8169976f8ccf06de78f2a61f05c8a618b3 100644
--- a/lib/refrepo/gen/puppet/templates/kavlan-dhcp.conf.erb
+++ b/lib/refrepo/gen/puppet/templates/kavlan-dhcp.conf.erb
@@ -67,7 +67,7 @@ subnet <%= kavlan_ip.network %> netmask <%= kavlan_ip.netmask %> {
        kavlan6_net = kavlan_id + 0x90 - 4
        kavlan6_ip = "#{refapi['sites'][site_uid]['ipv6']['prefix']}#{sprintf('%02x', kavlan6_net)}::/64"
      else      # global vlan
-       kavlan6_ip = "#{refapi['sites'][site_uid]['ipv6']['prefix']}a0::/59"
+       kavlan6_ip = "#{refapi['sites'][site_uid]['ipv6']['prefix']}a0::/64"
      end -%>
 subnet6 <%= kavlan6_ip %> {
 <% end -%>
diff --git a/lib/refrepo/input_loader.rb b/lib/refrepo/input_loader.rb
index 1e605f21c20ac26835754915d123f3eed743d765..56e73b38b9e59fdb5712e4b1fc396fd5c8c98cbd 100644
--- a/lib/refrepo/input_loader.rb
+++ b/lib/refrepo/input_loader.rb
@@ -213,10 +213,15 @@ def add_kavlan_ipv6s(h)
                 ip6 += '%x' % h['ipv6']['site_indexes'][site_uid]
                 ip6 += '%x:' % (kvl_id + 0x90 - 4)
               else      # global
-                ip6 += '%x' % h['ipv6']['site_indexes'][global_vlan_site[kvl_id]]
-                ip6 += '%x:' % ((h['ipv6']['site_indexes'][site_uid]&0x1f) + 0xa0)
+                ip6 += '%xa0:' % h['ipv6']['site_indexes'][global_vlan_site[kvl_id]] # no matter what, the gw is always on the global kavlan's site
+              end
+              if kvl_id > 9
+                # global kavlan: set most signicant octet of interface part to site index
+                ip6 += '%x' % h['ipv6']['site_indexes'][site_uid]
+                ip6 += '%02x' % ((ip4.split('.')[2].to_i & 0b1111) + 1)
+              else
+                ip6 += '%x' % ((ip4.split('.')[2].to_i & 0b1111) + 1)
               end
-              ip6 += '%x' % ((ip4.split('.')[2].to_i & 0b1111) + 1)
               if idx > 0
                 ip6 += ':%x::' % idx
               else