Index: libs/python/src/object/enum.cpp
===================================================================
--- libs/python/src/object/enum.cpp	(revisão 50782)
+++ libs/python/src/object/enum.cpp	(cópia de trabalho)
@@ -185,8 +185,22 @@
     (*this).attr(name_) = x;
 
     dict d = extract<dict>(this->attr("values"))();
-    d[value] = x;
-    
+    if (d.has_key(value))
+    {
+        extract<tuple> checker(d[value]);
+        if (!checker.check())
+        {
+            list v;
+            v.append(d[value]);
+            d[value] = v;
+        }
+        list result(d[value]);
+        result.append(x);
+        d[value] = tuple(result);
+    }
+    else
+        d[value] = x;
+
     // Set the name field in the new enum instanec
     enum_object* p = downcast<enum_object>(x.ptr());
     Py_XDECREF(p->name);
@@ -198,10 +212,19 @@
     dict d = extract<dict>(this->attr("values"))();
     list values = d.values();
     scope current;
    
     for (unsigned i = 0, max = len(values); i < max; ++i)
     {
-        api::setattr(current, object(values[i].attr("name")), values[i]);
+        extract<tuple> checker(values[i]);
+        if (checker.check()) {
+            tuple t(checker());
+            for (unsigned j = 0, maxj = len(t); j < maxj; ++j)
+                api::setattr(current, object(t[j].attr("name")), t[j]);
+        }
+        else
+        {
+            api::setattr(current, object(values[i].attr("name")), values[i]);
+        }
     }
  }
 
