diff --git a/files/profile.c b/files/profile.c
index 1fc08dc..0d5a1330 100644
--- a/files/profile.c
+++ b/files/profile.c
@@ -598,6 +598,29 @@
 }
 
 
+static INT PROFILE_GetSectionNames( LPSTR buffer, UINT len )
+{
+    LPSTR buf = buffer;
+    WORD l, cursize = 0;
+    PROFILESECTION *section;
+
+    for (section = CurProfile->section; section; section = section->next)
+	if (section->name) {
+	    l = strlen(section->name);
+	    cursize += l+1;
+	    if (cursize > len+1)
+		return len-2;
+
+	    strcpy(buf, section->name);
+	    buf += l+1;
+	}
+
+    *buf=0;
+    buf++;
+    return buf-buffer;
+}
+
+
 /***********************************************************************
  *           PROFILE_GetString
  *
@@ -618,8 +641,11 @@
                          section, key_name, def_val, buffer );
         return strlen( buffer );
     }
-    return PROFILE_GetSection(CurProfile->section, section, buffer, len,
+    if (section && section[0])
+        return PROFILE_GetSection(CurProfile->section, section, buffer, len,
 				FALSE, FALSE);
+    /* undocumented; both section and key_name are NULL */
+    return PROFILE_GetSectionNames(buffer, len);
 }
 
 
@@ -1351,34 +1377,12 @@
 WORD WINAPI GetPrivateProfileSectionNames16( LPSTR buffer, WORD size,
                                              LPCSTR filename )
 {
-    char *buf;
-    int l,cursize;
-    PROFILESECTION *section;
-    BOOL	ret = FALSE;
+    WORD ret = 0;
 
     EnterCriticalSection( &PROFILE_CritSect );
 
-    if (PROFILE_Open( filename )) {
-        buf = buffer;
-	cursize = 0;
-	section = CurProfile->section;
-	for ( ; section; section = section->next) 
-	    if (section->name) {
-	        l = strlen (section->name);
-		cursize += l+1;
-        	if (cursize > size+1) {
-		    LeaveCriticalSection( &PROFILE_CritSect );
-		    return size-2;
-		}
-		strcpy (buf,section->name);
-		buf += l;
-		*buf = 0;
-		buf++;
-	    }
-	buf++;
-	*buf=0;
-	ret = buf-buffer;
-    }
+    if (PROFILE_Open( filename ))
+	ret = PROFILE_GetSectionNames(buffer, size);
 
     LeaveCriticalSection( &PROFILE_CritSect );
 
