Hi Efraim, I've been taking a look into your patch. One issue are the comments about utf8 and UTF-8, as the issue is already explained in make-glibc[-utf8]-locales. Other point is: Efraim Flashner writes: > +(define* (make-glibc-locales-collection > + glibc > + #:optional (locales > + '(list "en_US.utf8" "en_US.ISO-8859-1"))) > (... Removed for clarity ...) > + ,locales) I would have used list there like (list ,@locales) or '(,@locales), this looks a bit odd to my eyes at least. I'd expect this kind of calling code: (let ((locales '("de_CH.utf8" ... "de_DE.utf8")) (my-glibc ...)) (make-glibc-locales-collection myglibc locales)) Enforcing an extra quotation for no real reason on the calling site, as strings are self-evaluating objects, and the use of the symbol list, whose meaning depends on other context of execution, doesn't seem necessary. Even worse, my example would raise an error as "de_CH.utf8" is not a procedure. What do you think about replacing make-glibc-utf8-locales with a call of the new function (using that code) ensuring that the generated derivation stays the same for that case (i.e. it's optimized for the UTF-8 case)? Happy hacking! Miguel