diff --git a/docs/ReleaseNotes.html b/docs/ReleaseNotes.html
index e382ef6..e77f3df 100644
--- a/docs/ReleaseNotes.html
+++ b/docs/ReleaseNotes.html
@@ -16,6 +16,10 @@
| Bugs |
+
+ | 2819445 |
+ SafeArray.fromLongArray fails when using VariantLongInt (M3) |
+
| 2847577 |
SafeArray#setString(*) incorrectly handles unicode strings (M3) |
diff --git a/jni/SafeArray.cpp b/jni/SafeArray.cpp
index 4fa0c65..29077a3 100644
--- a/jni/SafeArray.cpp
+++ b/jni/SafeArray.cpp
@@ -483,7 +483,8 @@ JNIEXPORT void JNICALL Java_com_jacob_com_SafeArray_fromLongArray
} else if (vt == VT_I8) {
void *pData;
SafeArrayAccessData(psa, &pData);
- memcpy(pData, arrayElements, len*sizeof(long));
+ // VT_I8 is actually a LONGLONG and not a long in length SF 2819445
+ memcpy(pData, arrayElements, len*sizeof(LONGLONG));
SafeArrayUnaccessData(psa);
} else {
ThrowComFail(env, "safearray cannot be assigned from long", -1);
diff --git a/unittest/com/jacob/test/safearray/SafeArrayBasicTest.java b/unittest/com/jacob/test/safearray/SafeArrayBasicTest.java
index 1d4fe10..a41f220 100644
Binary files a/unittest/com/jacob/test/safearray/SafeArrayBasicTest.java and b/unittest/com/jacob/test/safearray/SafeArrayBasicTest.java differ