diff --git a/bootfiles/20a/boot-2010-07-1.lisp b/bootfiles/20a/boot-2010-07-1.lisp
index a7d1c710024f038fec13314cd6beba49d99a3941..4a765fc2a699671f39d284a2517d6ae11b0b6c35 100644
--- a/bootfiles/20a/boot-2010-07-1.lisp
+++ b/bootfiles/20a/boot-2010-07-1.lisp
@@ -26,13 +26,9 @@
 
 (ext:without-package-locks
 
-  ;; Not the same as the definition in intl.lisp, but this works
-  ;; around a bootstrap issue.  It's good enough until the real
-  ;; definition is in place.
-  
-(defmacro with-textdomain ((new-domain) &body body)
-  `(eval-when (:compile-toplevel :load-toplevel :execute)
-     (setf intl::*default-domain* ,new-domain)
+(defmacro with-textdomain ((old-domain new-domain) &body body)
+  `(progn
+     (intl:textdomain ,new-domain)
      ,@body
-     (setf intl::*default-domain* "cmucl")))
+     (intl:textdomain ,old-domain)))
 )
diff --git a/code/intl.lisp b/code/intl.lisp
index 804af7a1638a5035d579cebc4739072a540e99f3..08112df951ce0d278c1e3aedae714e9de4b01421 100644
--- a/code/intl.lisp
+++ b/code/intl.lisp
@@ -1,6 +1,6 @@
 ;;; -*- Mode: LISP; Syntax: ANSI-Common-Lisp; Package: INTL -*-
 
-;;; $Revision: 1.7 $
+;;; $Revision: 1.8 $
 ;;; Copyright 1999-2010 Paul Foley (mycroft@actrix.gen.nz)
 ;;;
 ;;; Permission is hereby granted, free of charge, to any person obtaining
@@ -23,7 +23,7 @@
 ;;; (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
 ;;; USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
 ;;; DAMAGE.
-(ext:file-comment "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/intl.lisp,v 1.7 2010/07/13 23:43:39 rtoy Exp $")
+(ext:file-comment "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/intl.lisp,v 1.8 2010/07/14 03:13:20 rtoy Rel $")
 
 (in-package "INTL")
 
@@ -527,10 +527,11 @@
 
 ;; Set the textdomain to New-Domain for the body and then restore the
 ;; domain to the original.
-(defmacro with-textdomain ((new-domain) &body body)
-  `(eval-when (:compile-toplevel :load-toplevel :execute)
-     (let ((intl::*default-domain* ,new-domain))
-       ,@body)))
+(defmacro with-textdomain ((old-domain new-domain) &body body)
+  `(progn
+     (intl:textdomain ,new-domain)
+     ,@body
+     (intl:textdomain ,old-domain)))
 
 (defmacro gettext (string)
   "Look up STRING in the current message domain and return its translation."
diff --git a/code/signal.lisp b/code/signal.lisp
index 1f42660d50399360f1cafa19a29b03b5470e5bb8..4966ae5cdac919e6cf587ffb07797194b0bf98e1 100644
--- a/code/signal.lisp
+++ b/code/signal.lisp
@@ -5,7 +5,7 @@
 ;;; Carnegie Mellon University, and has been placed in the public domain.
 ;;;
 (ext:file-comment
-  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/signal.lisp,v 1.40 2010/07/13 23:43:39 rtoy Exp $")
+  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/signal.lisp,v 1.41 2010/07/14 03:13:20 rtoy Rel $")
 ;;;
 ;;; **********************************************************************
 ;;;
@@ -103,9 +103,9 @@
 (def-unix-signal :SIGTRAP 5 "Trace trap")
 (def-unix-signal :SIGIOT 6 "Iot instruction") ; Compatibility
 (def-unix-signal :SIGABRT 6 "C abort()")
-(intl::with-textdomain (#+linux "cmucl-linux-os"
-			#+sparc "cmucl-sparc-svr4"
-			#+bsd "cmucl-bsd-os")
+(intl::with-textdomain ("cmucl" #+linux "cmucl-linux-os"
+				#+sparc "cmucl-sparc-svr4"
+				#+bsd "cmucl-bsd-os")
 #-linux
 (def-unix-signal :SIGEMT 7 "Emt instruction"))
 
@@ -114,18 +114,18 @@
 (def-unix-signal :SIGKILL 9 "Kill")
 (def-unix-signal :SIGBUS #-linux 10 #+linux 7 "Bus error")
 (def-unix-signal :SIGSEGV 11 "Segmentation violation")
-(intl::with-textdomain (#+linux "cmucl-linux-os"
-			#+sparc "cmucl-sparc-svr4"
-			#+bsd "cmucl-bsd-os")
+(intl::with-textdomain ("cmucl" #+linux "cmucl-linux-os"
+				#+sparc "cmucl-sparc-svr4"
+				#+bsd "cmucl-bsd-os")
 #-linux
 (def-unix-signal :SIGSYS 12 "Bad argument to system call"))
 
 (def-unix-signal :SIGPIPE 13 "Write on a pipe with no one to read it")
 (def-unix-signal :SIGALRM 14 "Alarm clock")
 (def-unix-signal :SIGTERM 15 "Software termination signal")
-(intl::with-textdomain (#+linux "cmucl-linux-os"
-			#+sparc "cmucl-sparc-svr4"
-			#+bsd "cmucl-bsd-os")
+(intl::with-textdomain ("cmucl" #+linux "cmucl-linux-os"
+				#+sparc "cmucl-sparc-svr4"
+				#+bsd "cmucl-bsd-os")
 #+linux
 (def-unix-signal :SIGSTKFLT 16 "Stack fault on coprocessor"))
 
@@ -162,9 +162,9 @@
   #+linux 12 "User defined signal 2")
 
 ;;; SVR4 (or Solaris?) specific signals
-(intl::with-textdomain (#+linux "cmucl-linux-os"
-			#+sparc "cmucl-sparc-svr4"
-			#+bsd "cmucl-bsd-os")
+(intl::with-textdomain ("cmucl" #+linux "cmucl-linux-os"
+				#+sparc "cmucl-sparc-svr4"
+				#+bsd "cmucl-bsd-os")
 #+svr4
 (def-unix-signal :SIGWAITING 32 "Process's lwps are blocked"))