diff --git a/asdf-classes.lisp b/asdf-classes.lisp
index d0e2fa449db92597279364e31edfcce275a51ad4..00574d016884a8034d42bd1a3e260fbd88554ae8 100644
--- a/asdf-classes.lisp
+++ b/asdf-classes.lisp
@@ -43,6 +43,7 @@
              `(,initarg ,(slot-value comp slot-name)))))
     `(,@(call-next-method)
         ,@(when (asdf::around-compile-hook comp)
-            `(:around-compile (escaped-around-compile comp)))
+            `(:around-compile ,(escaped-around-compile comp)))
+	`(:encoding ,(component-encoding comp))
         ,@(slot-when-bound 'translated-name :translated-name)
         ,@(slot-when-bound 'translated-pathname :translated-pathname-form))))
diff --git a/asdf-dependency-grovel.asd b/asdf-dependency-grovel.asd
index de7f11faa9300591b4ab3e1a27dbfa8be62891cc..f349d65b0d53638425a75118738deb941b0d9a88 100644
--- a/asdf-dependency-grovel.asd
+++ b/asdf-dependency-grovel.asd
@@ -41,8 +41,8 @@ based on which compilation can be parallelized.
 Based on an analysis with form granularity,
 it can output a summary from which you can untangle
 the circularities in your build."
-  :version "1.105"
-  :depends-on ((:version :asdf "2.018.16")) ;; for full :around-compile support
+  :version "1.106"
+  :depends-on ((:version :asdf "2.21")) ;; for :encoding support
   :components ((:file "package")
                (:file "variables" :depends-on ("package"))
                (:file "classes" :depends-on ("package" "variables"))