Index: trunk/lib/Class/ParseText/Base.pm
===================================================================
--- trunk/lib/Class/ParseText/Base.pm	(revision 53)
+++ trunk/lib/Class/ParseText/Base.pm	(revision 55)
@@ -77,4 +77,5 @@
     my $start_rule = $self->{start_rule};
     croak '[' . (caller(0))[3] . '] No start rule given for the parser' unless defined $start_rule;
+    
     $self->{$start_rule} = $self->{parser}->$start_rule($src);
     
@@ -204,4 +205,7 @@
 =back
 
+I<Be sure that you explicitly return the object!> This is a bug that
+has bitten me a number of times.
+
 =head1 TODO
 
Index: trunk/lib/Text/FormBuilder.pm
===================================================================
--- trunk/lib/Text/FormBuilder.pm	(revision 53)
+++ trunk/lib/Text/FormBuilder.pm	(revision 55)
@@ -7,5 +7,5 @@
 use vars qw($VERSION @EXPORT);
 
-$VERSION = '0.08';
+$VERSION = '0.09_01';
 @EXPORT = qw(create_form);
 
Index: trunk/lib/Text/FormBuilder/grammar
===================================================================
--- trunk/lib/Text/FormBuilder/grammar	(revision 53)
+++ trunk/lib/Text/FormBuilder/grammar	(revision 55)
@@ -191,5 +191,9 @@
 hint: '[' /[^\]]+/ ']'    { $item[2] }
 
-type: ':' /textarea|text|password|file|checkbox|radio|select|hidden|static/
+# TODO: differentiate between builtins and custom field groups
+type: ':' ( builtin_field | var_name { warn "[Text::FormBuilder] Using field group names directly is not (yet) supported (input line $thisline)\n"; 'text' } )
+
+builtin_field: /textarea|text|password|file|checkbox|radio|select|hidden|static/
+
 
 default: '=' (simple_multiword | quoted_string) { $item[2] }
