diff --git a/plugins/inputs/procstat/procstat.go b/plugins/inputs/procstat/procstat.go
index 20c5af9d2976499ff5ba05b87613ec114637e165..d689ecf3ed630c1569604b6493dc678b8a37ce70 100644
--- a/plugins/inputs/procstat/procstat.go
+++ b/plugins/inputs/procstat/procstat.go
@@ -62,6 +62,13 @@ func (_ *Procstat) Description() string {
 }
 
 func (p *Procstat) Gather(acc telegraf.Accumulator) error {
+	if p.createPIDFinder == nil {
+		p.createPIDFinder = defaultPIDFinder
+	}
+	if p.createProcess == nil {
+		p.createProcess = defaultProcess
+	}
+
 	procs, err := p.updateProcesses(p.procs)
 	if err != nil {
 		return fmt.Errorf(
@@ -235,9 +242,6 @@ func (p *Procstat) findPids() ([]PID, map[string]string, error) {
 
 func init() {
 	inputs.Add("procstat", func() telegraf.Input {
-		return &Procstat{
-			createPIDFinder: defaultPIDFinder,
-			createProcess:   defaultProcess,
-		}
+		return &Procstat{}
 	})
 }