diff --git a/scapy/layers/inet6.py b/scapy/layers/inet6.py
index a26c696ad2976551da8f12456d3c37feef951a97..a4c787ef42de0dea9d462d75cc9f6a4d038f97b5 100644
--- a/scapy/layers/inet6.py
+++ b/scapy/layers/inet6.py
@@ -109,7 +109,10 @@ def getmacbyip6(ip6, chainCC=0):
     res = neighsol(ip6, a, iff, chainCC=chainCC)
 
     if res is not None:
-        mac = res.src
+        if ICMPv6NDOptDstLLAddr in res:
+	  mac = res[ICMPv6NDOptDstLLAddr].lladdr
+	else:
+	  mac = res.src
         conf.netcache.in6_neighbor[ip6] = mac
         return mac