diff --git a/include/object/xdrstream.h b/include/object/xdrstream.h
index 2e46cad3992771664504c6b148ec0f60f7441c7d..497e143a724c359cf3661a21b4ff1eb540c4110a 100644
--- a/include/object/xdrstream.h
+++ b/include/object/xdrstream.h
@@ -21,16 +21,14 @@ class XDRStream {
 
 	XDRStream & operator<<(char c);
 	XDRStream & operator<<(unsigned char c);
-	XDRStream & operator<<(unsigned short number);
-	XDRStream & operator<<(short number);
-	XDRStream & operator<<(unsigned int number);
-	XDRStream & operator<<(int number);
-	XDRStream & operator<<(unsigned long number);
-	XDRStream & operator<<(long number);
-	XDRStream & operator<<(unsigned long long number);
-	XDRStream & operator<<(long long number);
+	XDRStream & operator<<(uint16_t number);
+	XDRStream & operator<<(int16_t number);
+	XDRStream & operator<<(uint32_t number);
+	XDRStream & operator<<(int32_t number);
+	XDRStream & operator<<(uint64_t number);
+	XDRStream & operator<<(int64_t number);
 	XDRStream & operator<<(char const *text);
-	template<int TSize> XDRStream & operator<<(char const (&text)[TSize]);
+	template<uint32_t TSize> XDRStream & operator<<(char const (&text)[TSize]);
 	XDRStream & operator<<(XDRStream & (*fun) (XDRStream &));
 };
 
diff --git a/src/os/object/xdrstream.cc b/src/os/object/xdrstream.cc
index 92de9862ee0f32648ee4e07d173540d207474b0f..bc2ad891a5173dd142fc69b9e30dd938b3d58bcf 100644
--- a/src/os/object/xdrstream.cc
+++ b/src/os/object/xdrstream.cc
@@ -82,7 +82,7 @@ XDRStream & XDRStream::operator<<(char const *data){
 	return *this;
 }
 
-template<int TSize>
+template<uint32_t TSize>
 XDRStream & XDRStream::operator<<(char const (&data)[TSize]){
 	if (!is_fixed_length) {
 		*this << TSize;