diff --git a/src/test/compile-fail/issue-2828.rs b/src/test/compile-fail/issue-2828.rs
new file mode 100644
index 00000000000..50185b874f0
--- /dev/null
+++ b/src/test/compile-fail/issue-2828.rs
@@ -0,0 +1,21 @@
+struct NoCopy {
+    n: int
+}
+fn NoCopy() -> NoCopy {
+    NoCopy { n: 0 }
+}
+
+impl NoCopy: Drop {
+    fn finalize(&self) {
+        log(error, "running destructor");
+    }
+}
+
+fn main() {
+    let x = NoCopy();
+
+    let f = fn~() { assert x.n == 0; }; //~ ERROR copying a noncopyable value
+    let g = copy f;
+
+    f(); g();
+}
\ No newline at end of file