       catch e
         throw new Error "Could not find plugin '#{foundPlugin}' in NPM modules"
 
-      # If we have something but seems empty, throw
-      if pContext instanceof Object
-        unless pContext.settings or pContext.rules
-          throw new Error "Plugin empty or bad: #{pluginName} (#{foundPlugin})"
-
+      # If plugin does not return an Object, tell user
+      unless pContext instanceof Object
+        throw new Error "Plugin empty or unparseable: #{pluginName} (#{foundPlugin})"
+      else
         if pContext.settings
           settings = if typeof pContext.settings is 'function'
             pContext.settings()

            when 'yaml'
              logging.debug "Loading YAML file #{foundPlugin}"
              pluginCtx = yaml.safeLoad code, yaml.JSON_SCHEMA
              resolve Utils.recursiveMerge context, pluginCtx
            else
              # No ext => let's try to 'require' it (might be an installed module)
              throw new Error "Could not load #{pluginName}: #{foundPlugin} not found!"

          if pContext.actions
            Dispatch.extend pContext.actions logging, Config, Utils
          if pContext.settings
            settings = if typeof pContext.settings is 'function'
              pContext.settings context.settings
            else pContext.settings or {}
            Utils.recursiveMerge context.settings, settings, false
          if pContext.rules
            rules = if typeof pContext.rules is 'function'
              pContext.rules context.settings

            if 'string' is Utils.toType rules
              rules = yaml.safeLoad rules, yaml.JSON_SCHEMA

            # Make sure neither settings nor init are overwritten by rules.
            Utils.recursiveMerge context, Utils.omit(rules, ['settings', 'init']), false

          resolve context
        catch e
