diff --git a/gluon/sqlhtml.py b/gluon/sqlhtml.py
index cdbff2d5..f12ba004 100644
--- a/gluon/sqlhtml.py
+++ b/gluon/sqlhtml.py
@@ -1919,13 +1919,8 @@ class SQLFORM(FORM):
if 'table_name' in attributes:
del attributes['table_name']
- fields_with_clones = []
- for field in fields:
- if isinstance(field, Field):
- fields_with_clones.append(field.clone())
- else:
- # We have a table, so pass it along
- fields_with_clones.append(field)
+ # Clone fields, while passing tables straight through
+ fields_with_clones = [f.clone() if isinstance(f, Field) else f for f in fields]
return SQLFORM(DAL(None).define_table(table_name, *fields_with_clones), **attributes)