diff --git a/log.h b/log.h
index 015828acdace3fcb709de483ff6292ef4d051f63..7ca1ba4e33f4add28579183d29658523dc7a7acf 100644
--- a/log.h
+++ b/log.h
@@ -50,6 +50,17 @@ namespace Utilities{
       return log;
     }
 
+  template<class t> Log& operator<<(Log& log, t& obj)
+    {
+      if(log.stream_to_logfile)
+	log.logfileout << obj;
+
+      if(log.stream_to_cout)
+	cout << obj;
+
+      return log;
+    }
+
   class Log
     {
     public:
@@ -123,6 +134,9 @@ namespace Utilities{
 
       template<class t> 
 	friend Log& operator<<(Log& log, const t& obj); 
+
+      template<class t> 
+	friend Log& operator<<(Log& log, t& obj); 
     };
    
   class LogSingleton
diff --git a/time_tracer.h b/time_tracer.h
index 5e25e10925b62523b8abdf3f4e03822fb6c4edfa..44616a4de6f30f2fe8bd8e0ba48e4b7a146f7cbe 100644
--- a/time_tracer.h
+++ b/time_tracer.h
@@ -84,15 +84,17 @@ namespace Utilities{
 	  
 	  if(instantstack || runningstack)
 	    {
-	      tmp = "";
-	      pad++;
-	      for(unsigned int i = 0; i < pad; i++)
-		tmp = tmp + "  ";
-	      
 	      stk.push(string(str));
 
 	      if(runningstack)
-		cout << tmp << str << endl;
+		{
+		  tmp = "";
+		  pad++;
+		  for(unsigned int i = 0; i < pad; i++)
+		    tmp = tmp + "  ";
+		  
+		  cout << tmp << str << endl;
+		}
 	    }
 	  if(timingon)
 	    {
@@ -116,7 +118,9 @@ namespace Utilities{
       virtual ~Time_Tracer() 
 	{ 
 	  if(instantstack)
-	    stk.pop();
+	    {
+	      stk.pop();
+	    }
 
 	  if(runningstack && pad > 0) 
 	    {