diff --git a/contrib/ucw/config.h b/contrib/ucw/config.h
index 11234f56ff23d9fafeeb17c36b5a2ad4630b916e..5d3cb4fe2946228ebbe80deddae40f64d6b4058c 100644
--- a/contrib/ucw/config.h
+++ b/contrib/ucw/config.h
@@ -38,7 +38,12 @@ typedef int32_t s32;			/** Exactly 32 bits, signed **/
 typedef uint64_t u64;			/** Exactly 64 bits, unsigned **/
 typedef int64_t s64;			/** Exactly 64 bits, signed **/
 
+
+#ifndef uint /* Redefining typedef is a C11 feature. */
 typedef unsigned int uint;		/** A better pronounceable alias for `unsigned int` **/
+#define uint uint
+#endif
+
 typedef s64 timestamp_t;		/** Milliseconds since an unknown epoch **/
 
 // FIXME: This should be removed soon
diff --git a/lib/defines.h b/lib/defines.h
index 0be6b2d202629eb7ad6c8cd5860fc00ea2af0dc4..40c5bcd9bfe3cd79a477fc83bdc0cd5c266adf81 100644
--- a/lib/defines.h
+++ b/lib/defines.h
@@ -36,6 +36,11 @@
 #define KR_COLD
 #endif
 
+#ifndef uint /* Redefining typedef is a C11 feature. */
+typedef unsigned int uint;
+#define uint uint
+#endif
+
 /*
  * Error codes.
  */