diff --git a/tempsdb/database.pyx b/tempsdb/database.pyx
index 5ddaaf4cbb6f2edb73350f152ee3f3be7b1b3cef..1689a24e403a880a8d3d58d1165ffacc2285cc0d 100644
--- a/tempsdb/database.pyx
+++ b/tempsdb/database.pyx
@@ -56,7 +56,9 @@ cdef class Database:
 
     cpdef int delete_series(self, str name) except -1:
         """
-        Deletes a constant-length time series
+        Deletes a constant-length time series.
+        
+        Note that the series must either not be open, or closed.
         
         :param name: name of series to delete
         :raises ValueError: tried to delete "varlen" series
@@ -77,7 +79,9 @@ cdef class Database:
 
     cpdef int delete_varlen_series(self, str name) except -1:
         """
-        Deletes a variable-length time series
+        Deletes a variable-length time series.
+        
+        Note that the series must either not be open, or closed.
         
         :param name: name of series to delete
         :raises DoesNotExist: series does not exist
diff --git a/tempsdb/varlen.pxd b/tempsdb/varlen.pxd
index e792533cadb3c89774abdc8e03a460d1686a86c4..1657cccf0e8cdb60dad88af8b784ae60e192489d 100644
--- a/tempsdb/varlen.pxd
+++ b/tempsdb/varlen.pxd
@@ -1,4 +1,4 @@
-from .series cimport TimeSeries, create_series
+from .series cimport TimeSeries
 
 
 cdef class VarlenSeries:
@@ -20,6 +20,7 @@ cdef class VarlenSeries:
     cpdef int mark_synced_up_to(self, unsigned long long timestamp) except -1
     cpdef int close(self) except -1
     cpdef int delete(self) except -1
+    cpdef tuple get_current_value(self)
     cdef int get_length_for(self, int index)
     cpdef int trim(self, unsigned long long timestamp) except -1
     cdef int add_series(self) except -1
diff --git a/tempsdb/varlen.pyx b/tempsdb/varlen.pyx
index 3131c53e4d3b40bd3561decde10abe858241e8fd..99d252cb91faebdfedb93d4c298caa8655730ed0 100644
--- a/tempsdb/varlen.pyx
+++ b/tempsdb/varlen.pyx
@@ -435,6 +435,26 @@ cdef class VarlenSeries:
         """
         return VarlenIterator(self, start, stop, direct_bytes=direct_bytes)
 
+    cpdef tuple get_current_value(self):
+        """
+        Return latest value of this series
+                        
+        :return: tuple of (timestamp, value)
+        :rtype: tp.Tuple[int, bytes]
+        :raises ValueError: series has no data
+        """
+        if self.root_series.last_chunk is None:
+            raise ValueError('No data in series')
+        cdef:
+            VarlenIterator it = self.iterate_range(self.root_series.last_entry_ts,
+                                             self.root_series.last_entry_ts)
+            VarlenEntry et = it.get_next()
+        try:
+            return et.timestamp(), et.to_bytes()
+        finally:
+            et.close()
+            it.close()
+
     def __init__(self, path: str, name: str):
         self.closed = False
         self.path = path
diff --git a/tests/test_database.py b/tests/test_database.py
index 2d1686db09cc091e3f8134b0d10f9477b01e8e5c..24ab2462861957af578be56a14c5145613e75d76 100644
--- a/tests/test_database.py
+++ b/tests/test_database.py
@@ -16,6 +16,7 @@ class TestDatabase(unittest.TestCase):
         ser.close()
 
         ser = self.db.get_series('hello-world')
+        self.assertEqual(ser.get_current_value(), (20, b'\x00'))
         self.assertEqual(ser.last_entry_ts, 20)
         ser.close()
 
@@ -29,6 +30,7 @@ class TestDatabase(unittest.TestCase):
         ser.close()
 
         ser = self.db.get_varlen_series('hello-world')
+        self.assertEqual(ser.get_current_value(), (20, b'\x00\x00\x00'))
         self.assertEqual(ser.last_entry_ts, 20)
         ser.close()