--- a/net/minecraft/crash/CrashReport.java
+++ b/net/minecraft/crash/CrashReport.java
@@ -69,6 +69,7 @@
          List<String> list = Util.func_211565_f().collect(Collectors.toList());
          return String.format("%d total; %s", list.size(), list.stream().collect(Collectors.joining(" ")));
       });
+      net.minecraftforge.fml.CrashReportExtender.enhanceCrashReport(this, this.field_85061_c);
    }
 
    public String func_71501_a() {
@@ -87,14 +88,8 @@
       if (this.field_85060_g != null && this.field_85060_g.length > 0) {
          p_71506_1_.append("-- Head --\n");
          p_71506_1_.append("Thread: ").append(Thread.currentThread().getName()).append("\n");
-         p_71506_1_.append("Stacktrace:\n");
-
-         for(StackTraceElement stacktraceelement : this.field_85060_g) {
-            p_71506_1_.append("\t").append("at ").append((Object)stacktraceelement);
-            p_71506_1_.append("\n");
-         }
-
-         p_71506_1_.append("\n");
+         p_71506_1_.append("Stacktrace:");
+         p_71506_1_.append(net.minecraftforge.fml.CrashReportExtender.generateEnhancedStackTrace(this.field_85060_g));
       }
 
       for(CrashReportCategory crashreportcategory : this.field_71512_c) {
@@ -121,23 +116,13 @@
          throwable.setStackTrace(this.field_71511_b.getStackTrace());
       }
 
-      String s;
-      try {
-         stringwriter = new StringWriter();
-         printwriter = new PrintWriter(stringwriter);
-         throwable.printStackTrace(printwriter);
-         s = stringwriter.toString();
-      } finally {
-         IOUtils.closeQuietly((Writer)stringwriter);
-         IOUtils.closeQuietly((Writer)printwriter);
-      }
-
-      return s;
+      return net.minecraftforge.fml.CrashReportExtender.generateEnhancedStackTrace(throwable);
    }
 
    public String func_71502_e() {
       StringBuilder stringbuilder = new StringBuilder();
       stringbuilder.append("---- Minecraft Crash Report ----\n");
+      net.minecraftforge.fml.CrashReportExtender.addCrashReportHeader(stringbuilder, this);
       stringbuilder.append("// ");
       stringbuilder.append(func_71503_h());
       stringbuilder.append("\n\n");
