Index: include/bits/random.tcc
===================================================================
--- include/bits/random.tcc	(revision 164072)
+++ include/bits/random.tcc	(working copy)
@@ -27,6 +27,9 @@
  *  You should not attempt to use it directly.
  */
 
+#ifndef _RANDOM_TCC
+#define _RANDOM_TCC 1
+
 #include <numeric> // std::accumulate and std::partial_sum
 
 namespace std
@@ -2815,3 +2818,5 @@
       return __sum / __tmp;
     }
 }
+
+#endif
Index: include/bits/random.h
===================================================================
--- include/bits/random.h	(revision 164072)
+++ include/bits/random.h	(working copy)
@@ -28,6 +28,9 @@
  *  You should not attempt to use it directly.
  */
 
+#ifndef _RANDOM_H
+#define _RANDOM_H 1
+
 #include <vector>
 
 namespace std
@@ -5337,6 +5340,6 @@
   /* @} */ // group random_utilities
 
   /* @} */ // group random
-
 }
 
+#endif
Index: include/tr1/random.tcc
===================================================================
--- include/tr1/random.tcc	(revision 164072)
+++ include/tr1/random.tcc	(working copy)
@@ -28,6 +28,9 @@
  *  You should not attempt to use it directly.
  */
 
+#ifndef _GLIBCXX_TR1_RANDOM_TCC
+#define _GLIBCXX_TR1_RANDOM_TCC 1
+
 namespace std
 {
 namespace tr1
@@ -1708,3 +1711,5 @@
     }
 }
 }
+
+#endif
