diff --git a/geomagio/TimeseriesUtility.py b/geomagio/TimeseriesUtility.py
index 1c64c522f2db6b7a294ba025f673932e12a17a17..230c87b355ceabe883b1dd399657a2769cc5f502 100644
--- a/geomagio/TimeseriesUtility.py
+++ b/geomagio/TimeseriesUtility.py
@@ -2,6 +2,7 @@
 from builtins import range
 from datetime import datetime
 import math
+import sys
 import numpy
 import obspy.core
 
@@ -48,6 +49,9 @@ def create_empty_trace(
     )
     if delta > 60.0:
         trace_starttime += (delta - 60) / 2
+        if trace_starttime > endtime:
+            sys.stderr.write("Starttime greater than endtime, shifting endtime to next sample")
+            endtime = trace_starttime + delta
     stats.starttime = trace_starttime
     stats.delta = delta
     # Calculate number of valid samples up to or before endtime
diff --git a/test/TimeseriesUtility_test.py b/test/TimeseriesUtility_test.py
index c3fbb918536a0b88f53c5e0e62b081c4b4c4162c..f769ef3f23efc79acfe09bd06544f6ca8e69eeea 100644
--- a/test/TimeseriesUtility_test.py
+++ b/test/TimeseriesUtility_test.py
@@ -84,6 +84,21 @@ def test_create_empty_trace():
 
     assert_equal(day_trace.stats.starttime, UTCDateTime("2018-01-01T11:59:30Z"))
 
+    short_trace = TimeseriesUtility.create_empty_trace(
+        starttime=trace1.stats.starttime,
+        endtime=trace1.stats.starttime + 1,
+        observatory=observatory,
+        channel="F",
+        type="variation",
+        interval="day",
+        network=network,
+        station=trace1.stats.station,
+        location=location,
+    )
+
+    assert_equal(short_trace.stats.starttime, UTCDateTime("2018-01-01T11:59:30Z"))
+    assert_equal(short_trace.stats.endtime, UTCDateTime("2018-01-02T11:59:30Z"))
+
 
 def test_get_stream_gaps():
     """TimeseriesUtility_test.test_get_stream_gaps()