diff --git a/src/test/compile-fail/issue-3820.rs b/src/test/compile-fail/issue-3820.rs
new file mode 100644
index 00000000000..719036db1ab
--- /dev/null
+++ b/src/test/compile-fail/issue-3820.rs
@@ -0,0 +1,34 @@
+// Copyright 2012 The Rust Project Developers. See the COPYRIGHT
+// file at the top-level directory of this distribution and at
+// http://rust-lang.org/COPYRIGHT.
+//
+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+// xfail-test
+struct Thing {
+    x: int
+}
+
+impl Thing/*: Mul<int, Thing>*/ { //~ ERROR Look ma, no Mul!
+    pure fn mul(c: &int) -> Thing {
+        Thing {x: self.x * *c}
+    }
+}
+
+fn main() {
+    let u = Thing {x: 2};
+    let _v = u.mul(&3); // Works
+    let w = u * 3; // Works!!
+    io::println(fmt!("%i", w.x));
+
+    /*
+    // This doesn't work though.
+    let u2 = u as @Mul<int, Thing>;
+    let w2 = u2.mul(&4);
+    io::println(fmt!("%i", w2.x));
+    */
+}
diff --git a/src/test/run-pass/issue-3847.rs b/src/test/run-pass/issue-3847.rs
new file mode 100644
index 00000000000..878f6c6ccb1
--- /dev/null
+++ b/src/test/run-pass/issue-3847.rs
@@ -0,0 +1,22 @@
+// Copyright 2012 The Rust Project Developers. See the COPYRIGHT
+// file at the top-level directory of this distribution and at
+// http://rust-lang.org/COPYRIGHT.
+//
+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+mod buildings {
+    pub struct Tower { height: uint }
+}
+
+fn main() {
+    let sears = buildings::Tower { height: 1451 };
+    let h: uint = match sears {
+        buildings::Tower { height: h } => { h }
+    };
+
+    io::println(h.to_str());
+}