diff --git a/testing/all.test b/testing/all.test
index d70fb3f56..05cd2d196 100755
--- a/testing/all.test
+++ b/testing/all.test
@@ -22,3 +22,4 @@ source $testdir/where.test
 source $testdir/compare.test
 source $testdir/changes.test
 source $testdir/total-changes.test
+source $testdir/offset.test
diff --git a/testing/offset.test b/testing/offset.test
new file mode 100644
index 000000000..2f5be091b
--- /dev/null
+++ b/testing/offset.test
@@ -0,0 +1,47 @@
+#!/usr/bin/env tclsh
+
+set testdir [file dirname $argv0]
+source $testdir/tester.tcl
+
+do_execsql_test select-offset-0 {
+  SELECT id FROM users ORDER BY id LIMIT 1 OFFSET 0;
+} {1}
+
+do_execsql_test select-offset-1 {
+  SELECT id FROM users ORDER BY id LIMIT 1 OFFSET 1;
+} {2}
+
+do_execsql_test select-offset-negative {
+  SELECT id FROM users ORDER BY id LIMIT 1 OFFSET -1;
+} {1}
+
+do_execsql_test select-offset-0-groupby {
+  SELECT COUNT(*) FROM users GROUP BY STATE ORDER BY STATE LIMIT 5 OFFSET 0;
+} {168
+166
+162
+153
+166}
+
+do_execsql_test select-offset-1-groupby {
+  SELECT COUNT(*) FROM users GROUP BY STATE ORDER BY STATE LIMIT 5 OFFSET 1;
+} {166
+162
+153
+166
+170}
+
+do_execsql_test select-offset-subquery {
+    SELECT id, first_name, age 
+    FROM (
+        SELECT id, first_name, age 
+        FROM users 
+        ORDER BY id ASC 
+        LIMIT 5 OFFSET 2
+    )
+    ORDER BY id DESC;
+} {7|Aimee|24
+6|Nicholas|89
+5|Edward|15
+4|Jennifer|33
+3|Tommy|18}
\ No newline at end of file