diff --git a/go/loader/loader.go b/go/loader/loader.go
index 970fd6d..04b54cb 100644
--- a/go/loader/loader.go
+++ b/go/loader/loader.go
@@ -145,6 +145,10 @@
 	// method of Config.
 	Fset *token.FileSet
 
+	// ParserMode specifies the mode to be used by the parser when
+	// loading source packages.
+	ParserMode parser.Mode
+
 	// TypeChecker contains options relating to the type checker.
 	//
 	// The supplied IgnoreFuncBodies is not used; the effective
@@ -255,8 +259,8 @@
 // ParseFile is a convenience function that invokes the parser using
 // the Config's FileSet, which is initialized if nil.
 //
-func (conf *Config) ParseFile(filename string, src interface{}, mode parser.Mode) (*ast.File, error) {
-	return parser.ParseFile(conf.fset(), filename, src, mode)
+func (conf *Config) ParseFile(filename string, src interface{}) (*ast.File, error) {
+	return parser.ParseFile(conf.fset(), filename, src, conf.ParserMode)
 }
 
 // FromArgsUsage is a partial usage message that applications calling
@@ -340,7 +344,7 @@
 // conf.CreatePkgs.
 //
 func (conf *Config) CreateFromFilenames(path string, filenames ...string) error {
-	files, err := parseFiles(conf.fset(), conf.build(), nil, ".", filenames...)
+	files, err := parseFiles(conf.fset(), conf.build(), nil, ".", filenames, conf.ParserMode)
 	if err != nil {
 		return err
 	}
@@ -638,7 +642,7 @@
 	default:
 		panic(which)
 	}
-	return parseFiles(conf.fset(), &ctxt, conf.DisplayPath, bp.Dir, filenames...)
+	return parseFiles(conf.fset(), &ctxt, conf.DisplayPath, bp.Dir, filenames, conf.ParserMode)
 }
 
 // doImport imports the package denoted by path.
