diff --git a/scapy/layers/dhcp6.py b/scapy/layers/dhcp6.py
index fba74898b7b61ea1926f6a9425c5620f51461e0d..c55fb9f046d10834ed296dc88e9a336e5b84ebda 100644
--- a/scapy/layers/dhcp6.py
+++ b/scapy/layers/dhcp6.py
@@ -143,7 +143,8 @@ dhcp6types = {   1:"SOLICIT",
 
 duidtypes = { 1: "Link-layer address plus time", 
               2: "Vendor-assigned unique ID based on Enterprise Number",
-              3: "Link-layer Address" }
+              3: "Link-layer Address",
+              4: "UUID" }
 
 # DUID hardware types - RFC 826 - Extracted from 
 # http://www.iana.org/assignments/arp-parameters on 31/10/06
@@ -232,9 +233,15 @@ class DUID_LL(Packet):  # sect 9.4 RFC 3315
                     XShortEnumField("hwtype", 1, duidhwtypes), 
                     _LLAddrField("lladdr", ETHER_ANY) ]
 
+class DUID_UUID(Packet):  # RFC 6355
+    name = "DUID - Based on UUID"
+    fields_desc = [ ShortEnumField("type", 4, duidtypes),
+                    StrFixedLenField("uuid","", 16) ]
+
 duid_cls = { 1: "DUID_LLT",
              2: "DUID_EN",
-             3: "DUID_LL"}
+             3: "DUID_LL",
+             4: "DUID_UUID"}
 
 #####################################################################
 ###                   DHCPv6 Options classes                      ###