diff -r 5b64f8f173dd src/dutil/inc/regutil.h
--- a/src/dutil/inc/regutil.h	Sat Apr 23 15:34:45 2011 -0700
+++ b/src/dutil/inc/regutil.h	Thu Jun 09 15:10:52 2011 +0100
@@ -233,7 +233,12 @@
     __in_z_opt LPCWSTR wzName,
     __in DWORD64 qwValue
     );
-
+//Aditions by Sean Farrow
+HRESULT DAPI RegKeyExists(
+    __in HKEY hkRoot,
+    __in_z LPCWSTR wzSubKey
+    );
+//End Aditions by Sean Farrow
 #ifdef __cplusplus
 }
 #endif
diff -r 5b64f8f173dd src/dutil/regutil.cpp
--- a/src/dutil/regutil.cpp	Sat Apr 23 15:34:45 2011 -0700
+++ b/src/dutil/regutil.cpp	Thu Jun 09 15:10:52 2011 +0100
@@ -898,3 +898,27 @@
 LExit:
     return hr;
 }
+//Aditions by Sean Farrow
+extern "C" HRESULT DAPI RegKeyExists(
+    __in HKEY hkRoot,
+    __in_z LPCWSTR wzSubKey
+    )
+{
+HKEY Key =NULL; //store the key after opening.
+	HRESULT hr =S_FALSE; //Key does not exist, glass half empty.
+		if (!hkRoot)
+{
+ExitOnFailure(hr, "A root key is required but has not been supplied.");
+}
+if (!wzSubKey)
+{
+ExitOnFailure(hr, "A sub key is required but has not been supplied.");
+}
+DWORD er =ERROR_FILE_NOT_FOUND;
+er = vpfnRegOpenKeyExW(hkRoot, wzSubKey, 0, KEY_READ, &Key);
+	hr =HRESULT_FROM_WIN32(er);
+LExit:
+ReleaseRegKey(Key);
+return hr;
+}
+//End Aditions by Sean Farrow
\ No newline at end of file
