diff --git a/product/ERP5Type/Base.py b/product/ERP5Type/Base.py
index 56ce2a80fc9a2d18c55e04a6b282dba009ba7f96..cb368966ae9b4d046bcb75a1bf31f2aa8b05ba20 100644
--- a/product/ERP5Type/Base.py
+++ b/product/ERP5Type/Base.py
@@ -2855,7 +2855,7 @@ class Base( CopyContainer,
      full dns name + portal_name + uid + random
      the guid should be defined only one time for each object
     """
-    if not hasattr(self, 'guid'):
+    if self.getGuid() is None:
       guid = ''
       # Set the dns name
       guid += gethostbyaddr(gethostname())[0]
@@ -2869,7 +2869,7 @@ class Base( CopyContainer,
     """
     Get the global and unique id
     """
-    return getattr(self,'guid',None)
+    return getattr(aq_base(self), 'guid', None)
 
   # Type Casting
   def _getTypeBasedMethod(self, method_id, fallback_script_id=None,