--- a/dds.cpp
+++ b/dds.cpp
@@ -880,7 +880,7 @@ void InitStart(void) {
 
 #ifdef _WIN32
 
-    localVar[k].maxmem = (LONGLONG)(pcmem-32678) * (700/MAXNOOFTHREADS);  
+    localVar[k].maxmem = (DDS_LONGLONG)(pcmem-32678) * (700/MAXNOOFTHREADS);  
 	/* Linear calculation of maximum memory, formula by Michiel de Bondt */
 
     if (localVar[k].maxmem < 10485760) exit (1);
@@ -4396,7 +4396,7 @@ struct nodeCardsType * BuildPath(struct
 
 
 struct posSearchType * SearchLenAndInsert(struct posSearchType
-	* rootp, LONGLONG key, int insertNode, int *result, int thrId) {
+	* rootp, DDS_LONGLONG key, int insertNode, int *result, int thrId) {
 /* Search for node which matches with the suit length combination 
    given by parameter key. If no such node is found, NULL is 
   returned if parameter insertNode is FALSE, otherwise a new 
--- a/dll.h
+++ b/dll.h
@@ -1,7 +1,7 @@
 /* portability-macros header prefix */
 
 #if !defined(_MSC_VER)
-#define LONGLONG long long
+#define DDS_LONGLONG long long
 #endif
 
 /* Windows requires a __declspec(dllexport) tag, etc */
@@ -174,7 +174,7 @@ struct pos {
 
 struct posSearchType {
   struct winCardType * posSearchPoint; 
-  LONGLONG suitLengths;
+  DDS_LONGLONG suitLengths;
   struct posSearchType * left;
   struct posSearchType * right;
 };
@@ -304,9 +304,9 @@ struct localVarType {
   int nodeSetSizeLimit;
   int winSetSizeLimit;
   int lenSetSizeLimit;
-  LONGLONG maxmem;
-  LONGLONG allocmem;
-  LONGLONG summem;
+  DDS_LONGLONG maxmem;
+  DDS_LONGLONG allocmem;
+  DDS_LONGLONG summem;
   int wmem;
   int nmem; 
   int lmem;
@@ -320,7 +320,7 @@ struct localVarType {
   int suppressTTlog;*/
   struct relRanksType * rel;
   struct adaptWinRanksType * adaptWins;
-  LONGLONG suitLengths;
+  DDS_LONGLONG suitLengths;
   struct posSearchType *rootnp[14][4];
   struct winCardType **pw;
   struct nodeCardsType **pn;
@@ -457,7 +457,7 @@ struct nodeCardsType * BuildPath(struct
 void BuildSOP(struct pos * posPoint, int tricks, int firstHand, int target,
   int depth, int scoreFlag, int score, int thrId);
 struct posSearchType * SearchLenAndInsert(struct posSearchType
-	* rootp, LONGLONG key, int insertNode, int *result, int thrId);  
+	* rootp, DDS_LONGLONG key, int insertNode, int *result, int thrId);  
 void Undo(struct pos * posPoint, int depth, int thrId);
 int CheckDeal(struct moveType * cardp, int thrId);
 int InvBitMapRank(unsigned short bitMap);
