diff --git a/openerp/cli/scaffold.py b/openerp/cli/scaffold.py
index c4f2c44db43588c568c50b5dac640ac5e4b7de90..fdbcfb9e4fcc5d1f19ad5d56424c089cc5a13a78 100644
--- a/openerp/cli/scaffold.py
+++ b/openerp/cli/scaffold.py
@@ -83,18 +83,21 @@ env.filters['snake'] = snake
 env.filters['pascal'] = pascal
 class template(object):
     def __init__(self, identifier):
-        # TODO: directories, archives (zipfile, tarfile)
+        # TODO: archives (zipfile, tarfile)
         self.id = identifier
-        if not os.path.isdir(self.path):
-            die("{} is not a valid module template".format(identifier))
+        # is identifier a builtin?
+        self.path = builtins(identifier)
+        if os.path.isdir(self.path):
+            return
+        # is identifier a directory?
+        self.path = identifier
+        if os.path.isdir(self.path):
+            return
+        die("{} is not a valid module template".format(identifier))
 
     def __str__(self):
         return self.id
 
-    @property
-    def path(self):
-        return builtins(self.id)
-
     def files(self):
         """ Lists the (local) path and content of all files in the template
         """