diff --git a/ulid.go b/ulid.go
index <HASH>..<HASH> 100644
--- a/ulid.go
+++ b/ulid.go
@@ -78,14 +78,10 @@ var (
 // ErrBigTime is returned when passing a timestamp bigger than MaxTime.
 // Reading from the entropy source may also return an error.
 func New(ms uint64, entropy io.Reader) (id ULID, err error) {
-	if err = id.SetTime(ms); err != nil {
+	if err = id.SetTime(ms); err != nil || entropy == nil {
 		return id, err
 	}
 
-	if entropy == nil {
-		return id, nil
-	}
-
 	switch e := entropy.(type) {
 	case *monotonic:
 		if len(e.prev) != 0 && e.ms == ms {
Merge if clauses in New