diff --git a/pgi/gitypes/gobject.py b/pgi/gitypes/gobject.py
index <HASH>..<HASH> 100644
--- a/pgi/gitypes/gobject.py
+++ b/pgi/gitypes/gobject.py
@@ -116,6 +116,7 @@ GObjectPtr = POINTER(GObject)
 class GValue(Structure):
     _fields_ = [
         ("g_type", GType),
+        ("dummy", guint64 * 2),
     ]
 
 
diff --git a/pgi/properties.py b/pgi/properties.py
index <HASH>..<HASH> 100644
--- a/pgi/properties.py
+++ b/pgi/properties.py
@@ -57,8 +57,7 @@ class Property(object):
         self.__ref_pool = []
 
     def __get__(self, instance, owner):
-        gvalue = GValue(0)
-        ptr = GValuePtr(gvalue)
+        ptr = GValuePtr(GValue())
         ptr.init(self.__value_type)
 
         tag = self.__tag
@@ -76,8 +75,7 @@ class Property(object):
         return func()
 
     def __set__(self, instance, value):
-        gvalue = GValue(0)
-        ptr = GValuePtr(gvalue)
+        ptr = GValuePtr(GValue())
         ptr.init(self.__value_type)
 
         tag = self.__tag
Make sure the whole gvalue is zero initialized: now works with pypy again.