diff --git a/src/librustc/middle/trans/base.rs b/src/librustc/middle/trans/base.rs
index 94771d6f519..a79063c9c9a 100644
--- a/src/librustc/middle/trans/base.rs
+++ b/src/librustc/middle/trans/base.rs
@@ -87,6 +87,7 @@ use syntax::parse::token::{special_idents};
 use syntax::print::pprust::stmt_to_str;
 use syntax::{ast, ast_util, codemap, ast_map};
 use syntax::abi::{X86, X86_64, Arm, Mips};
+use syntax::visit;
 use syntax::visit::Visitor;
 
 pub use middle::trans::context::task_llcx;
@@ -2239,6 +2240,14 @@ pub fn trans_item(ccx: @mut CrateContext, item: &ast::item) {
             trans_struct_def(ccx, struct_def);
         }
       }
+      ast::item_trait(*) => {
+        // Inside of this trait definition, we won't be actually translating any
+        // functions, but the trait still needs to be walked. Otherwise default
+        // methods with items will not get translated and will cause ICE's when
+        // metadata time comes around.
+        let mut v = TransItemVisitor;
+        visit::walk_item(&mut v, item, ccx);
+      }
       _ => {/* fall through */ }
     }
 }
diff --git a/src/test/auxiliary/issue_9123.rs b/src/test/auxiliary/issue_9123.rs
new file mode 100644
index 00000000000..066909d42b8
--- /dev/null
+++ b/src/test/auxiliary/issue_9123.rs
@@ -0,0 +1,19 @@
+// Copyright 2013 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.
+
+#[crate_type = "lib"];
+
+pub trait X {
+    fn x() {
+        fn f() { }
+        f();
+    }
+}
+
diff --git a/src/test/run-pass/issue-9123.rs b/src/test/run-pass/issue-9123.rs
new file mode 100644
index 00000000000..73a14de10bf
--- /dev/null
+++ b/src/test/run-pass/issue-9123.rs
@@ -0,0 +1,16 @@
+// Copyright 2013 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-fast windows doesn't like aux-build
+// aux-build:issue_9123.rs
+
+extern mod issue_9123;
+
+pub fn main() {}