diff --git a/.gitignore b/.gitignore
index d47cc9c..051dc49 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,6 +4,7 @@
x64/Debug/VX-API.exe
*.pdb
.vs/VX-API/v17/.suo
+.vs/VX-API/v17/DocumentLayout*
*.vsidx
*.db
*.db-shm
diff --git a/README.md b/README.md
index 749197b..6e55ef8 100644
--- a/README.md
+++ b/README.md
@@ -66,6 +66,7 @@ You're free to use this in any manner you please. You do not need to use this en
| Function Name | Original Author |
| ------------- | --------------- |
| GetLastErrorFromTeb | smelly__vx |
+| GetLastErrorFromOffset | d4ytox |
| GetLastNtStatusFromTeb | smelly__vx |
| RtlNtStatusToDosErrorViaImport | ReactOS |
| GetLastErrorFromTeb | smelly__vx |
diff --git a/VX-API/GetLastErrorFromOffset.cpp b/VX-API/GetLastErrorFromOffset.cpp
new file mode 100644
index 0000000..9dc6de2
--- /dev/null
+++ b/VX-API/GetLastErrorFromOffset.cpp
@@ -0,0 +1,10 @@
+#include "Win32Helper.h"
+
+DWORD GetLastErrorFromOffset(VOID)
+{
+#ifdef _WIN64
+ return (DWORD)__readgsqword(0x68);
+#else
+ return __readfsdword(0x34);
+#endif
+}
diff --git a/VX-API/VX-API.vcxproj b/VX-API/VX-API.vcxproj
index 6b63a1d..5c6cb17 100644
--- a/VX-API/VX-API.vcxproj
+++ b/VX-API/VX-API.vcxproj
@@ -187,6 +187,7 @@
+
diff --git a/VX-API/VX-API.vcxproj.filters b/VX-API/VX-API.vcxproj.filters
index 41366c2..eb99758 100644
--- a/VX-API/VX-API.vcxproj.filters
+++ b/VX-API/VX-API.vcxproj.filters
@@ -840,6 +840,9 @@
Source Files\Proxied Functions
+
+ Source Files\Error Handling
+
diff --git a/VX-API/Win32Helper.h b/VX-API/Win32Helper.h
index 3e161ab..4bc7b1f 100644
--- a/VX-API/Win32Helper.h
+++ b/VX-API/Win32Helper.h
@@ -135,6 +135,7 @@ BOOL ExtractFilesFromCabIntoTargetA(LPCSTR CabFile, LPCSTR OutputDirectory);
ERROR HANDLING
*******************************************/
DWORD GetLastErrorFromTeb(VOID);
+DWORD GetLastErrorFromOffset(VOID);
NTSTATUS GetLastNtStatusFromTeb(VOID);
VOID SetLastErrorInTeb(_In_ DWORD ErrorCode);
VOID SetLastNtStatusInTeb(_In_ NTSTATUS Status);