diff --git a/ansi-tests/load-eval-and-compile.lsp b/ansi-tests/load-eval-and-compile.lsp
index c8af8c66c4e398d84588467263d5aea85ed46b47..149f3f9d2e02493cfb2a1be9b2e2e3e9a419db04 100644
--- a/ansi-tests/load-eval-and-compile.lsp
+++ b/ansi-tests/load-eval-and-compile.lsp
@@ -10,4 +10,7 @@
 (load "define-symbol-macro.lsp")
 (load "defmacro.lsp")
 (load "the.lsp")
+(load "symbol-macrolet.lsp")
+(load "locally.lsp")
+
 
diff --git a/ansi-tests/locally.lsp b/ansi-tests/locally.lsp
new file mode 100644
index 0000000000000000000000000000000000000000..bc0c4efa293f637a511e10cc5847ce9b953d8322
--- /dev/null
+++ b/ansi-tests/locally.lsp
@@ -0,0 +1,39 @@
+;-*- Mode:     Lisp -*-
+;;;; Author:   Paul Dietz
+;;;; Created:  Sat Jan  8 06:02:47 2005
+;;;; Contains: Tests of LOCALLY
+
+(in-package :cl-test)
+
+(deftest locally.1
+  (locally)
+  nil)
+
+(deftest locally.2
+  (locally (values)))
+
+(deftest locally.3
+  (locally (values 1 2 3 4))
+  1 2 3 4)
+
+(deftest locally.4
+  (locally (declare) t)
+  t)
+
+(deftest locally.5
+  (locally (declare) (declare) (declare) t)
+  t)
+
+(deftest locally.6
+  (let ((x 'a))
+    (declare (special x))
+    (let ((x 'b))
+      (values
+       x
+       (locally (declare (special x)) x)
+       x)))
+  b a b)
+
+(deftest locally.7
+  (locally (declare))
+  nil)
diff --git a/ansi-tests/symbol-macrolet.lsp b/ansi-tests/symbol-macrolet.lsp
new file mode 100644
index 0000000000000000000000000000000000000000..417763a01cef435f4eb54339606d79ab9be9ef32
--- /dev/null
+++ b/ansi-tests/symbol-macrolet.lsp
@@ -0,0 +1,78 @@
+;-*- Mode:     Lisp -*-
+;;;; Author:   Paul Dietz
+;;;; Created:  Sat Jan  8 05:58:53 2005
+;;;; Contains: Tests of SYMBOL-MACROLET
+
+(in-package :cl-test)
+
+(deftest symbol-macrolet.1
+  (loop for s in *cl-non-variable-constant-symbols*
+	for form = `(ignore-errors (symbol-macrolet ((,s 17)) ,s))
+	unless (eql (eval form) 17)
+	collect s)
+  nil)
+
+(deftest symbol-macrolet.2
+  (symbol-macrolet ())
+  nil)
+
+(deftest symbol-macrolet.3
+  (symbol-macrolet () (declare (optimize)))
+  nil)
+
+(deftest symbol-macrolet.4
+  (symbol-macrolet ((x 1))
+    (symbol-macrolet ((x 2))
+      x))
+  2)
+
+(deftest symbol-macrolet.5
+  (let ((x 10))
+     (symbol-macrolet ((y x))
+       (list x
+	     y
+	     (let ((x 20)) x)
+	     (let ((y 30)) x)
+	     (let ((y 50)) y)
+	     x
+	     y)))
+  (10 10 20 10 50 10 10))
+
+(deftest symbol-macrolet.6
+  (symbol-macrolet () (values)))
+		       
+(deftest symbol-macrolet.7
+  (symbol-macrolet () (values 'a 'b 'c 'd 'e))
+  a b c d e)
+
+(deftest symbol-macrolet.8
+  (let ((x :bad))
+    (declare (special x))
+    (let ((x :good))
+      (symbol-macrolet () (declare (special x)) x)))
+  :good)
+
+;;; Error tests		       
+
+(deftest symbol-macrolet.error.1
+  (signals-error
+   (symbol-macrolet ((x 10))
+     (declare (special x))
+     20)
+   program-error)
+  t)
+
+(defconstant constant-for-symbol-macrolet.error.2 nil)
+
+(deftest symbol-macrolet.error.2
+  (signals-error (symbol-macrolet ((constant-for-symbol-macrolet.error.2 'a))
+		   constant-for-symbol-macrolet.error.2)
+		 program-error)
+  t)
+
+(deftest symbol-macrolet.error.3
+  (signals-error (symbol-macrolet ((*pathnames* 19)) *pathnames*)
+		 program-error)
+  t)
+
+