diff --git a/Lib/test/test_msilib.py b/Lib/test/test_msilib.py
index 265eaea..fa0be58 100644
--- a/Lib/test/test_msilib.py
+++ b/Lib/test/test_msilib.py
@@ -85,6 +85,7 @@
 
     def test_directory_start_component_keyfile(self):
         db, db_path = init_database()
+        self.addCleanup(unlink, db_path)
         self.addCleanup(db.Close)
         feature = msilib.Feature(db, 0, 'Feature', 'A feature', 'Python')
         cab = msilib.CAB('CAB')
@@ -92,6 +93,14 @@
                                'SourceDir', 0)
         dir.start_component(None, feature, None, 'keyfile')
 
+    def test_getproperty_uninitialized_var(self):
+        db, db_path = init_database()
+        self.addCleanup(unlink, db_path)
+        self.addCleanup(db.Close)
+        si = db.GetSummaryInformation(0)
+        with self.assertRaises(msilib.MSIError):
+            si.GetProperty(-1)
+
 
 class Test_make_id(unittest.TestCase):
     #http://msdn.microsoft.com/en-us/library/aa369212(v=vs.85).aspx
diff --git a/Misc/NEWS.d/next/Library/2019-05-31-15-53-34.bpo-12202.nobzc9.rst b/Misc/NEWS.d/next/Library/2019-05-31-15-53-34.bpo-12202.nobzc9.rst
new file mode 100644
index 0000000..1e56197
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2019-05-31-15-53-34.bpo-12202.nobzc9.rst
@@ -0,0 +1,2 @@
+Fix the error handling in :meth:`msilib.SummaryInformation.GetProperty`. Patch
+by Zackery Spytz.
diff --git a/PC/_msi.c b/PC/_msi.c
index 4c8df5b..accbe7a 100644
--- a/PC/_msi.c
+++ b/PC/_msi.c
@@ -571,6 +571,9 @@
         status = MsiSummaryInfoGetProperty(si->h, field, &type, &ival,
             &fval, sval, &ssize);
     }
+    if (status != ERROR_SUCCESS) {
+        return msierror(status);
+    }
 
     switch(type) {
         case VT_I2:
