diff --git a/src/main/java/hex/Layer.java b/src/main/java/hex/Layer.java
index <HASH>..<HASH> 100644
--- a/src/main/java/hex/Layer.java
+++ b/src/main/java/hex/Layer.java
@@ -99,6 +99,10 @@ public abstract class Layer extends Iced {
   // Dropout (for input + hidden layers)
   transient Dropout dropout;
 
+  Dropout createDropout(int units) {
+    return new Dropout(units);
+  }
+
   /**
    * Start of refactoring in specification & running data, for layers and trainers.
    */
@@ -745,7 +749,7 @@ public abstract class Layer extends Iced {
   public static class TanhDropout extends Tanh {
     public TanhDropout(int units) {
       super(units);
-//      dropout = new Dropout(units);
+      dropout = createDropout(units);
     }
   }
 
@@ -798,7 +802,7 @@ public abstract class Layer extends Iced {
   public static class Maxout extends Layer {
     public Maxout(int units) {
       this.units = units;
-//      dropout = new Dropout(units);
+      dropout = createDropout(units);
     }
 
     @Override public void init(Layer[] ls, int index, boolean weights) {
@@ -906,7 +910,7 @@ public abstract class Layer extends Iced {
   public static class RectifierDropout extends Rectifier {
     public RectifierDropout(int units) {
       super(units);
-//      dropout = new Dropout(units);
+      this.dropout = createDropout(units);
     }
   }
Fix a non-obvious javac bug.

javac <I>. wrongly recognizes the context of this pointer in a
constructor of class. javac <I>/eclipse javac were ok.