diff --git a/openjdkjvmti/ti_stack.cc b/openjdkjvmti/ti_stack.cc
index 62204c9..75f0556 100644
--- a/openjdkjvmti/ti_stack.cc
+++ b/openjdkjvmti/ti_stack.cc
@@ -232,7 +232,7 @@
   size_t index = 0;
 };
 
-jvmtiError StackUtil::GetStackTrace(jvmtiEnv* jvmti_env ATTRIBUTE_UNUSED,
+jvmtiError StackUtil::GetStackTrace(jvmtiEnv* jvmti_env,
                                     jthread java_thread,
                                     jint start_depth,
                                     jint max_frame_count,
@@ -282,7 +282,9 @@
       return ERR(THREAD_NOT_ALIVE);
     }
     *count_ptr = static_cast<jint>(closure.index);
-    if (closure.index < static_cast<size_t>(start_depth)) {
+    if (closure.index == 0) {
+      JVMTI_LOG(INFO, jvmti_env) << "The stack is not large enough for a start_depth of "
+                                 << start_depth << ".";
       return ERR(ILLEGAL_ARGUMENT);
     }
     return ERR(NONE);
diff --git a/test/911-get-stack-trace/expected.txt b/test/911-get-stack-trace/expected.txt
index 3179424..42e8aa7 100644
--- a/test/911-get-stack-trace/expected.txt
+++ b/test/911-get-stack-trace/expected.txt
@@ -55,6 +55,8 @@
  bar (IIILart/ControlData;)J 0 26
  foo (IIILart/ControlData;)I 0 21
  baz (IIILart/ControlData;)Ljava/lang/Object; 8 34
+---------
+ printOrWait (IILart/ControlData;)V 6 41
 From bottom
 ---------
  run ()V 0 25
@@ -62,7 +64,7 @@
  baz (IIILart/ControlData;)Ljava/lang/Object; 8 34
  bar (IIILart/ControlData;)J 0 26
  foo (IIILart/ControlData;)I 0 21
- doTest ()V 58 32
+ doTest ()V 61 33
  run ()V 0 25
 ---------
  bar (IIILart/ControlData;)J 0 26
@@ -132,6 +134,8 @@
  foo (IIILart/ControlData;)I 0 21
  baz (IIILart/ControlData;)Ljava/lang/Object; 8 34
  bar (IIILart/ControlData;)J 0 26
+---------
+ wait ()V 2 568
 From bottom
 ---------
  run ()V 4 28
@@ -169,7 +173,7 @@
  baz (IIILart/ControlData;)Ljava/lang/Object; 8 34
  bar (IIILart/ControlData;)J 0 26
  foo (IIILart/ControlData;)I 0 21
- run ()V 4 61
+ run ()V 4 62
 ---------
  baz (IIILart/ControlData;)Ljava/lang/Object; 2 32
  bar (IIILart/ControlData;)J 0 26
@@ -186,7 +190,7 @@
  baz (IIILart/ControlData;)Ljava/lang/Object; 8 34
  bar (IIILart/ControlData;)J 0 26
  foo (IIILart/ControlData;)I 0 21
- run ()V 4 61
+ run ()V 4 62
 ---------
  printOrWait (IILart/ControlData;)V 45 54
  baz (IIILart/ControlData;)Ljava/lang/Object; 2 32
@@ -201,13 +205,13 @@
  foo (IIILart/ControlData;)I 0 21
 From bottom
 ---------
- run ()V 4 61
+ run ()V 4 62
 ---------
  foo (IIILart/ControlData;)I 0 21
  baz (IIILart/ControlData;)Ljava/lang/Object; 8 34
  bar (IIILart/ControlData;)J 0 26
  foo (IIILart/ControlData;)I 0 21
- run ()V 4 61
+ run ()V 4 62
 ---------
  baz (IIILart/ControlData;)Ljava/lang/Object; 8 34
  bar (IIILart/ControlData;)J 0 26
diff --git a/test/911-get-stack-trace/src/art/OtherThread.java b/test/911-get-stack-trace/src/art/OtherThread.java
index 3f5ae59..a513a1b 100644
--- a/test/911-get-stack-trace/src/art/OtherThread.java
+++ b/test/911-get-stack-trace/src/art/OtherThread.java
@@ -38,6 +38,7 @@
     PrintThread.print(t, 1, 25);
     PrintThread.print(t, 0, 7);
     PrintThread.print(t, 2, 7);
+    PrintThread.print(t, 2, 1);
 
     System.out.println("From bottom");
     PrintThread.print(t, -1, 25);
diff --git a/test/911-get-stack-trace/src/art/SameThread.java b/test/911-get-stack-trace/src/art/SameThread.java
index c9afad5..c7efd6a 100644
--- a/test/911-get-stack-trace/src/art/SameThread.java
+++ b/test/911-get-stack-trace/src/art/SameThread.java
@@ -26,6 +26,7 @@
     Recurse.foo(4, 1, 25, null);
     Recurse.foo(4, 0, 5, null);
     Recurse.foo(4, 2, 5, null);
+    Recurse.foo(4, 2, 1, null);
 
     System.out.println("From bottom");
     Recurse.foo(4, -1, 25, null);
