diff --git a/gluon/sqlhtml.py b/gluon/sqlhtml.py
index 101e9a23..3e2521c5 100644
--- a/gluon/sqlhtml.py
+++ b/gluon/sqlhtml.py
@@ -1925,11 +1925,13 @@ class SQLFORM(FORM):
columns = []
virtual_columns = []
for table in tables:
- fields += filter(filter1, table)
- columns += filter(filter2, table)
for k,f in table.iteritems():
if not k.startswith('_'):
- if isinstance(f,Field.Virtual) and f.readable:
+ if isinstance(f,Field):
+ fields.append(f) #what gets selected
+ if f.readable:
+ columns.append(f) #what gets shown
+ elif isinstance(f,Field.Virtual) and f.readable:
f.tablename = table._tablename
#show virtual fields after real fields so put at end of list
virtual_columns.append(f) #add to fields as well