diff --git a/core/observations.jl b/core/observations.jl
index 99d2b55fff238285155d297277762f697bd6d464..c59d18beab1848204ac93c5f74844cc1460d2e41 100644
--- a/core/observations.jl
+++ b/core/observations.jl
@@ -35,10 +35,9 @@ function getindex(σ::AbstractTrajectory, var::String)
     end
 end
 # Get i-th state [i]
-getindex(σ::AbstractTrajectory, idx::Int) = get_state(σ, i)
+getindex(σ::AbstractTrajectory, idx::Int) = get_state(σ, idx)
 # Get i-th value of var ["I", idx]
-function getindex(σ::AbstractTrajectory, var_idx::Tuple{String,Int})
-    var, idx = var_idx[1], var_idx[2]
+function getindex(σ::AbstractTrajectory, var::String, idx::Int)
     if var  == "times"
         return σ.times[idx]
     elseif var == "transitions"
diff --git a/tests/run_unit.jl b/tests/run_unit.jl
index 9934547b322a2158be3476c4f8c75832cbc74fdc..ffe7a939a081d6388a29dbf8a88e6c6ed15ae9bf 100644
--- a/tests/run_unit.jl
+++ b/tests/run_unit.jl
@@ -10,5 +10,6 @@ using Test
     @test include("unit/simulate_er.jl")
     @test include("unit/change_obs_var_sir.jl")
     @test include("unit/change_obs_var_sir_2.jl")
+    @test include("unit/getindex_access_trajectory.jl")
 end
 
diff --git a/tests/unit/getindex_access_trajectory.jl b/tests/unit/getindex_access_trajectory.jl
new file mode 100644
index 0000000000000000000000000000000000000000..e5b0aaa6b36872324e70055069e7a33c6afe6f64
--- /dev/null
+++ b/tests/unit/getindex_access_trajectory.jl
@@ -0,0 +1,11 @@
+
+using MarkovProcesses
+
+load_model("SIR")
+σ = simulate(SIR)
+σ["I"]
+σ["I",2]
+σ[3]
+
+return true
+