diff --git a/lib/config/vmops.hpp b/lib/config/vmops.hpp
index f89f7c1e5..91663a1c5 100644
--- a/lib/config/vmops.hpp
+++ b/lib/config/vmops.hpp
@@ -235,6 +235,9 @@ public:
 				return GetPrototypeField(context, field, true, debugInfo);
 			}
 
+			if (index < 0 || index >= arr->GetLength())
+				BOOST_THROW_EXCEPTION(ScriptError("Array index '" + Convert::ToString(index) + "' is out of bounds.", debugInfo));
+
 			return arr->Get(index);
 		}