diff --git a/test/gtest_has_state_blocks.cpp b/test/gtest_has_state_blocks.cpp
index 70a3a49ba1ef7656ac5ff1b57cf25f37711d4529..2d710f321b9452181a9044fece67d42ced120062 100644
--- a/test/gtest_has_state_blocks.cpp
+++ b/test/gtest_has_state_blocks.cpp
@@ -67,6 +67,9 @@ TEST_F(HasStateBlocksTest, Notifications_setKey)
 TEST_F(HasStateBlocksTest, Notifications_addStateBlock)
 {
     Notification n;
+
+    // First add SB, than make KF
+
     ASSERT_FALSE(problem->getStateBlockNotification(sbp0, n));
 
     F0->link(problem->getTrajectory());
@@ -86,6 +89,23 @@ TEST_F(HasStateBlocksTest, Notifications_addStateBlock)
 
     ASSERT_TRUE(problem->getStateBlockNotification(sbv0, n));
     ASSERT_EQ(n, ADD);
+
+    // first make KF, then add SB
+
+    F1->link(problem->getTrajectory());
+
+    F1->addStateBlock("P", sbp1);
+
+    F1->setKey();
+
+    ASSERT_TRUE(problem->getStateBlockNotification(sbp1, n));
+    ASSERT_FALSE(problem->getStateBlockNotification(sbv1, n));
+
+    F1->addStateBlock("V", sbv1);
+
+    ASSERT_TRUE(problem->getStateBlockNotification(sbv1, n));
+    ASSERT_EQ(n, ADD);
+
 }
 
 int main(int argc, char **argv)