diff --git a/libpurple/win32/win32dep.h b/libpurple/win32/win32dep.h
--- a/libpurple/win32/win32dep.h
+++ b/libpurple/win32/win32dep.h
@@ -31,14 +31,6 @@
 
 G_BEGIN_DECLS
 
-/* the winapi headers don't yet have winhttp.h, so we use the struct from msdn directly */
-typedef struct {
-  BOOL fAutoDetect;
-  LPWSTR lpszAutoConfigUrl;
-  LPWSTR lpszProxy;
-  LPWSTR lpszProxyBypass;
-} WINHTTP_CURRENT_USER_IE_PROXY_CONFIG;
-
 /* rpcndr.h defines small as char, causing problems, so we need to undefine it */
 #undef small
 
@@ -51,11 +43,6 @@ typedef struct {
  **/
 /* Windows helper functions */
 FARPROC wpurple_find_and_loadproc(const char *dllname, const char *procedure);
-gboolean wpurple_reg_val_exists(HKEY rootkey, const char *subkey, const char *valname);
-gboolean wpurple_read_reg_dword(HKEY rootkey, const char *subkey, const char *valname, LPDWORD result);
-char *wpurple_read_reg_string(HKEY rootkey, const char *subkey, const char *valname); /* needs to be g_free'd */
-gboolean wpurple_write_reg_string(HKEY rootkey, const char *subkey, const char *valname, const char *value);
-char *wpurple_escape_dirsep(const char *filename); /* needs to be g_free'd */
 
 /* Simulate unix pipes by creating a pair of connected sockets */
 int wpurple_input_pipe(int pipefd[2]);
# HG changeset patch
# Node ID fd3d7322a15a
# Parent  50b951eab77d
diff --git a/libpurple/win32/win32dep.c b/libpurple/win32/win32dep.c
--- a/libpurple/win32/win32dep.c
+++ b/libpurple/win32/win32dep.c
@@ -48,35 +48,6 @@ static HINSTANCE libpurpledll_hInstance 
  *  PUBLIC CODE
  */
 
-/* Escape windows dir separators.  This is needed when paths are saved,
-   and on being read back have their '\' chars used as an escape char.
-   Returns an allocated string which needs to be freed.
-*/
-char *wpurple_escape_dirsep(const char *filename) {
-	int sepcount = 0;
-	const char *tmp = filename;
-	char *ret;
-	int cnt = 0;
-
-	g_return_val_if_fail(filename != NULL, NULL);
-
-	while(*tmp) {
-		if(*tmp == '\\')
-			sepcount++;
-		tmp++;
-	}
-	ret = g_malloc0(strlen(filename) + sepcount + 1);
-	while(*filename) {
-		ret[cnt] = *filename;
-		if(*filename == '\\')
-			ret[++cnt] = '\\';
-		filename++;
-		cnt++;
-	}
-	ret[cnt] = '\0';
-	return ret;
-}
-
 /* Determine whether the specified dll contains the specified procedure.
    If so, load it (if not already loaded). */
 FARPROC wpurple_find_and_loadproc(const char *dllname, const char *procedure) {
@@ -303,174 +274,6 @@ const char *wpurple_sysconf_dir(void)
 
 /* Miscellaneous */
 
-gboolean wpurple_write_reg_string(HKEY rootkey, const char *subkey, const char *valname,
-		const char *value) {
-	HKEY reg_key;
-	gboolean success = FALSE;
-
-	wchar_t *wc_subkey = g_utf8_to_utf16(subkey, -1, NULL,
-		NULL, NULL);
-
-	if(RegOpenKeyExW(rootkey, wc_subkey, 0,
-			KEY_SET_VALUE, &reg_key) == ERROR_SUCCESS) {
-		wchar_t *wc_valname = NULL;
-
-		if (valname)
-			wc_valname = g_utf8_to_utf16(valname, -1,
-				NULL, NULL, NULL);
-
-		if(value) {
-			wchar_t *wc_value = g_utf8_to_utf16(value, -1,
-				NULL, NULL, NULL);
-			int len = (wcslen(wc_value) * sizeof(wchar_t)) + 1;
-			if(RegSetValueExW(reg_key, wc_valname, 0, REG_SZ,
-					(LPBYTE)wc_value, len
-					) == ERROR_SUCCESS)
-				success = TRUE;
-			g_free(wc_value);
-		} else
-			if(RegDeleteValueW(reg_key, wc_valname) ==  ERROR_SUCCESS)
-				success = TRUE;
-
-		g_free(wc_valname);
-	}
-	g_free(wc_subkey);
-
-	if(reg_key != NULL)
-		RegCloseKey(reg_key);
-
-	return success;
-}
-
-static HKEY _reg_open_key(HKEY rootkey, const char *subkey, REGSAM access) {
-	HKEY reg_key = NULL;
-	LONG rv;
-
-	wchar_t *wc_subkey = g_utf8_to_utf16(subkey, -1, NULL,
-		NULL, NULL);
-	rv = RegOpenKeyExW(rootkey, wc_subkey, 0, access, &reg_key);
-
-	g_free(wc_subkey);
-
-	if (rv != ERROR_SUCCESS) {
-		char *errmsg = g_win32_error_message(rv);
-		purple_debug_error("wpurple", "Could not open reg key '%s' subkey '%s'.\nMessage: (%ld) %s\n",
-					((rootkey == HKEY_LOCAL_MACHINE) ? "HKLM" :
-					 (rootkey == HKEY_CURRENT_USER) ? "HKCU" :
-					  (rootkey == HKEY_CLASSES_ROOT) ? "HKCR" : "???"),
-					subkey, rv, errmsg);
-		g_free(errmsg);
-	}
-
-	return reg_key;
-}
-
-static gboolean _reg_read(HKEY reg_key, const char *valname, LPDWORD type, LPBYTE data, LPDWORD data_len) {
-	LONG rv;
-
-	wchar_t *wc_valname = NULL;
-	if (valname)
-		wc_valname = g_utf8_to_utf16(valname, -1, NULL, NULL, NULL);
-	rv = RegQueryValueExW(reg_key, wc_valname, 0, type, data, data_len);
-	g_free(wc_valname);
-
-	if (rv != ERROR_SUCCESS) {
-		char *errmsg = g_win32_error_message(rv);
-		purple_debug_error("wpurple", "Could not read from reg key value '%s'.\nMessage: (%ld) %s\n",
-					valname, rv, errmsg);
-		g_free(errmsg);
-	}
-
-	return (rv == ERROR_SUCCESS);
-}
-
-gboolean wpurple_reg_val_exists(HKEY rootkey, const char *subkey, const char *valname)
-{
-	HKEY hkey;
-	LONG retv;
-	DWORD index;
-	wchar_t name_buffer[100];
-	BOOL exists = FALSE;
-	wchar_t *wc_valname = NULL;
-	wchar_t *wc_subkey;
-
-	if (subkey == NULL)
-		return FALSE;
-
-	wc_subkey = g_utf8_to_utf16(subkey, -1, NULL, NULL, NULL);
-	retv = RegOpenKeyExW(rootkey, wc_subkey, 0, KEY_ENUMERATE_SUB_KEYS, &hkey);
-	g_free(wc_subkey);
-
-	if (retv != ERROR_SUCCESS)
-		return FALSE;
-
-	if (valname[0] == '\0' || valname == NULL) {
-		RegCloseKey(hkey);
-		return TRUE;
-	}
-
-	wc_valname = g_utf8_to_utf16(valname, -1, NULL, NULL, NULL);
-	index = 0;
-	while (TRUE)
-	{
-		DWORD name_size = sizeof(name_buffer);
-		retv = RegEnumValueW(hkey, index++, name_buffer, &name_size,
-			NULL, NULL, NULL, NULL);
-		if (retv != ERROR_SUCCESS)
-			break;
-		name_size /= sizeof(wchar_t);
-		if (wcsncmp(name_buffer, wc_valname, name_size) == 0) {
-			exists = TRUE;
-			break;
-		}
-	}
-	g_free(wc_valname);
-
-	RegCloseKey(hkey);
-	return exists;
-}
-
-gboolean wpurple_read_reg_dword(HKEY rootkey, const char *subkey, const char *valname, LPDWORD result) {
-
-	DWORD type;
-	DWORD nbytes;
-	HKEY reg_key = _reg_open_key(rootkey, subkey, KEY_QUERY_VALUE);
-	gboolean success = FALSE;
-
-	if(reg_key) {
-		if(_reg_read(reg_key, valname, &type, (LPBYTE)result, &nbytes))
-			success = TRUE;
-		RegCloseKey(reg_key);
-	}
-
-	return success;
-}
-
-char *wpurple_read_reg_string(HKEY rootkey, const char *subkey, const char *valname) {
-
-	DWORD type;
-	DWORD nbytes;
-	HKEY reg_key = _reg_open_key(rootkey, subkey, KEY_QUERY_VALUE);
-	char *result = NULL;
-
-	if(reg_key) {
-		if(_reg_read(reg_key, valname, &type, NULL, &nbytes) && type == REG_SZ) {
-			LPBYTE data = (LPBYTE) g_new(wchar_t, ((nbytes + 1) / sizeof(wchar_t)) + 1);
-
-			if(_reg_read(reg_key, valname, &type, data, &nbytes)) {
-				wchar_t *wc_temp = (wchar_t*) data;
-				wc_temp[nbytes / sizeof(wchar_t)] = '\0';
-				result = g_utf16_to_utf8(wc_temp, -1,
-					NULL, NULL, NULL);
-			}
-			g_free(data);
-		}
-		RegCloseKey(reg_key);
-	}
-
-	return result;
-}
-
 int wpurple_input_pipe(int pipefd[2])
 {
 	SOCKET sock_server, sock_client, sock_server_established;
