diff --git a/README.md b/README.md
index 3359e8f..92e45ad 100644
--- a/README.md
+++ b/README.md
@@ -245,6 +245,9 @@
 render("Hello {{ default(neighbour, \"my friend\") }}!", data); // "Hello Peter!"
 render("Hello {{ default(colleague, \"my friend\") }}!", data); // "Hello my friend!"
 
+// Access an objects value dynamically
+render("{{ at(time, \"start\") }} to {{ time.end }}", data); // "16 to 22"
+
 // Check if a key exists in an object
 render("{{ exists(\"guests\") }}", data); // "true"
 render("{{ exists(\"city\") }}", data); // "false"
diff --git a/include/inja/renderer.hpp b/include/inja/renderer.hpp
index af774b2..d33cb46 100644
--- a/include/inja/renderer.hpp
+++ b/include/inja/renderer.hpp
@@ -343,7 +343,11 @@
     } break;
     case Op::At: {
       const auto args = get_arguments<2>(node);
-      json_eval_stack.push(&args[0]->at(args[1]->get<int>()));
+      if (args[0]->is_object()) {
+        json_eval_stack.push(&args[0]->at(args[1]->get<std::string>()));
+      } else {
+        json_eval_stack.push(&args[0]->at(args[1]->get<int>()));
+      }
     } break;
     case Op::Default: {
       const auto test_arg = get_arguments<1, 0, false>(node)[0];
diff --git a/test/test-functions.cpp b/test/test-functions.cpp
index 0ddcbf0..e920ff2 100644
--- a/test/test-functions.cpp
+++ b/test/test-functions.cpp
@@ -70,6 +70,8 @@
   SUBCASE("at") {
     CHECK(env.render("{{ at(names, 0) }}", data) == "Jeff");
     CHECK(env.render("{{ at(names, i) }}", data) == "Seb");
+    CHECK(env.render("{{ at(brother, \"name\") }}", data) == "Chris");
+    CHECK(env.render("{{ at(at(brother, \"daughters\"), 0) }}", data) == "Maria");
     // CHECK(env.render("{{ at(names, 45) }}", data) == "Jeff");
   }
 
