diff --git a/dlls/msi/action.c b/dlls/msi/action.c
index 11a4ad7..44fae9d 100644
--- a/dlls/msi/action.c
+++ b/dlls/msi/action.c
@@ -2426,7 +2426,7 @@
     {
         static const WCHAR szEmpty[] = {0};
         value_data = (LPSTR)strdupW(szEmpty);
-        size = 0;
+        size = sizeof(szEmpty);
         type = REG_SZ;
     }
 
@@ -3772,8 +3772,10 @@
             size = strlenW(feature->Feature_Parent)*sizeof(WCHAR);
         if (!absent)
         {
+            static const WCHAR emptyW[] = {0};
+            size += sizeof(WCHAR);
             RegSetValueExW(hukey,feature->Feature,0,REG_SZ,
-                       (LPBYTE)feature->Feature_Parent,size);
+                           (LPBYTE)(feature->Feature_Parent ? feature->Feature_Parent : emptyW),size);
         }
         else
         {
diff --git a/dlls/msi/registry.c b/dlls/msi/registry.c
index 74f84f7..b95d5bb 100644
--- a/dlls/msi/registry.c
+++ b/dlls/msi/registry.c
@@ -381,7 +381,7 @@
 
 LPWSTR msi_version_dword_to_str(DWORD version)
 {
-    const WCHAR fmt[] = { '%','u','.','%','u','.','%','u',0 };
+    static const WCHAR fmt[] = { '%','u','.','%','u','.','%','u',0 };
     LPWSTR str = msi_alloc(20);
     sprintfW(str, fmt,
              (version&0xff000000)>>24,
@@ -392,7 +392,10 @@
 
 LONG msi_reg_set_val_str( HKEY hkey, LPCWSTR name, LPCWSTR value )
 {
-    DWORD len = value ? (lstrlenW(value) + 1) * sizeof (WCHAR) : 0;
+    static const WCHAR emptyW[] = {0};
+    DWORD len;
+    if (!value) value = emptyW;
+    len = (lstrlenW(value) + 1) * sizeof (WCHAR);
     return RegSetValueExW( hkey, name, 0, REG_SZ, (const BYTE *)value, len );
 }
 
diff --git a/dlls/msi/source.c b/dlls/msi/source.c
index 0f9e087..4c38116 100644
--- a/dlls/msi/source.c
+++ b/dlls/msi/source.c
@@ -822,7 +822,7 @@
     }
     else if (strcmpW(INSTALLPROPERTY_PACKAGENAMEW, szProperty)==0)
     {
-        DWORD size = lstrlenW(szValue)*sizeof(WCHAR);
+        DWORD size = (lstrlenW(szValue) + 1) * sizeof(WCHAR);
         rc = RegSetValueExW(sourcekey, INSTALLPROPERTY_PACKAGENAMEW, 0,
                 REG_SZ, (const BYTE *)szValue, size);
         if (rc != ERROR_SUCCESS)
