diff --git a/dlls/rpcrt4/rpcrt4.spec b/dlls/rpcrt4/rpcrt4.spec
index 8deaafda52a6ae90f7912815adb852e610710476..5f3b6a6ebff31830598bd97ff68ff2ebfa211b22 100644
--- a/dlls/rpcrt4/rpcrt4.spec
+++ b/dlls/rpcrt4/rpcrt4.spec
@@ -171,7 +171,7 @@ init	RPCRT4_LibMain
 @ stub TowerConstruct
 @ stub TowerExplode
 
-@ stub UuidCompare
+@ stdcall UuidCompare(ptr ptr ptr) UuidCompare
 @ stdcall UuidCreate(ptr) UuidCreate
 @ stdcall UuidCreateSequential(ptr) UuidCreateSequential # win 2000
 @ stdcall UuidCreateNil(ptr) UuidCreateNil
diff --git a/dlls/rpcrt4/rpcrt4_main.c b/dlls/rpcrt4/rpcrt4_main.c
index 41fc19f37fdc5d6303c1c87d9ff82b7bf90fdaef..3a745d0fa6ef1ba312b0a186506e3f07ed4adcf5 100644
--- a/dlls/rpcrt4/rpcrt4_main.c
+++ b/dlls/rpcrt4/rpcrt4_main.c
@@ -138,14 +138,39 @@ RPC_STATUS WINAPI RpcStringFreeW(LPWSTR* String)
  * RETURNS
  *     TRUE/FALSE
  */
-int WINAPI UuidEqual(UUID *uuid1, UUID *uuid2, RPC_STATUS *Status)
+int WINAPI UuidEqual(UUID *Uuid1, UUID *Uuid2, RPC_STATUS *Status)
 {
-  TRACE("(%s,%s)\n", debugstr_guid(uuid1), debugstr_guid(uuid2));
+  TRACE("(%s,%s)\n", debugstr_guid(Uuid1), debugstr_guid(Uuid2));
   *Status = RPC_S_OK;
-  if (!uuid1) uuid1 = &uuid_nil;
-  if (!uuid2) uuid2 = &uuid_nil;
-  if (uuid1 == uuid2) return TRUE;
-  return !memcmp(uuid1, uuid2, sizeof(UUID));
+  if (!Uuid1) Uuid1 = &uuid_nil;
+  if (!Uuid2) Uuid2 = &uuid_nil;
+  if (Uuid1 == Uuid2) return TRUE;
+  return !memcmp(Uuid1, Uuid2, sizeof(UUID));
+}
+
+/*************************************************************************
+ * UuidCompare [RPCRT4.@]
+ *
+ * (an educated-guess implementation)
+ *
+ * PARAMS
+ *     UUID *Uuid1        [I] Uuid to compare
+ *     UUID *Uuid2        [I] Uuid to compare
+ *     RPC_STATUS *Status [O] returns RPC_S_OK
+ * 
+ * RETURNS
+ *     -1 if Uuid1 is less than Uuid2
+ *     0  if Uuid1 and Uuid2 are equal
+ *     1  if Uuid1 is greater than Uuid2
+ */
+int WINAPI UuidCompare(UUID *Uuid1, UUID *Uuid2, RPC_STATUS *Status)
+{
+  TRACE("(%s,%s)\n", debugstr_guid(Uuid1), debugstr_guid(Uuid2));
+  *Status = RPC_S_OK;
+  if (!Uuid1) Uuid1 = &uuid_nil;
+  if (!Uuid2) Uuid2 = &uuid_nil;
+  if (Uuid1 == Uuid2) return 0;
+  return memcmp(Uuid1, Uuid2, sizeof(UUID));
 }
 
 /*************************************************************************