updated for version 7.1-008
diff --git a/src/eval.c b/src/eval.c
index 9429981..ac4dc1b 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -10136,7 +10136,13 @@
 	if (mch_isdir(fname))
 	    rettv->vval.v_number = 0;
 	else
+	{
 	    rettv->vval.v_number = (varnumber_T)st.st_size;
+
+	    /* non-perfect check for overflow */
+	    if ((off_t)rettv->vval.v_number != (off_t)st.st_size)
+		rettv->vval.v_number = -2;
+	}
     }
     else
 	  rettv->vval.v_number = -1;