diff --git a/src/main/java/water/api/Predict.java b/src/main/java/water/api/Predict.java
index <HASH>..<HASH> 100644
--- a/src/main/java/water/api/Predict.java
+++ b/src/main/java/water/api/Predict.java
@@ -33,8 +33,8 @@ public class Predict extends Request2 {
       if( model instanceof Model )
            fr = ((   Model)model).score(data);
       else fr = ((OldModel)model).score(data);
+      fr = new Frame(prediction,fr._names,fr.vecs()); // Jam in the frame key
       fr.unlock();
-      UKV.put(prediction, fr);
       return Inspect2.redirect(this, prediction.toString());
     } catch( Throwable t ) {
       Log.err(t);
diff --git a/src/main/java/water/fvec/Frame.java b/src/main/java/water/fvec/Frame.java
index <HASH>..<HASH> 100644
--- a/src/main/java/water/fvec/Frame.java
+++ b/src/main/java/water/fvec/Frame.java
@@ -252,7 +252,7 @@ public class Frame extends Lockable<Frame> {
 
   public final String[] names() { return _names; }
   public int  numCols() { return vecs().length; }
-  public long numRows(){ return anyVec().length();}
+  public long numRows() { return anyVec()==null ? 0 : anyVec().length(); }
 
   // Number of columns when categoricals expanded.
   // Note: One level is dropped in each categorical col.
Remove debugging code

And inject Frame key in predict