diff --git a/src/jsontestrunner/main.cpp b/src/jsontestrunner/main.cpp
index 1d43720..a576564 100644
--- a/src/jsontestrunner/main.cpp
+++ b/src/jsontestrunner/main.cpp
@@ -115,7 +115,8 @@
                   const Json::Value &root, 
                   std::string &rewrite )
 {
-//   Json::FastWriter writer;
+   //Json::FastWriter writer;
+   //writer.enableYAMLCompatibility();
    Json::StyledWriter writer;
    rewrite = writer.write( root );
    FILE *fout = fopen( rewritePath.c_str(), "wt" );
diff --git a/src/lib_json/json_writer.cpp b/src/lib_json/json_writer.cpp
index f1d8168..47577fa 100644
--- a/src/lib_json/json_writer.cpp
+++ b/src/lib_json/json_writer.cpp
@@ -67,10 +67,29 @@
    return std::string("\"") + value + "\"";
 }
 
+// Class Writer
+// //////////////////////////////////////////////////////////////////
+Writer::~Writer()
+{
+}
+
 
 // Class FastWriter
 // //////////////////////////////////////////////////////////////////
 
+FastWriter::FastWriter()
+   : yamlCompatiblityEnabled_( false )
+{
+}
+
+
+void 
+FastWriter::enableYAMLCompatibility()
+{
+   yamlCompatiblityEnabled_ = true;
+}
+
+
 std::string 
 FastWriter::write( const Value &root )
 {
@@ -106,33 +125,34 @@
       break;
    case arrayValue:
       {
-         document_ += "[ ";
+         document_ += "[";
          int size = value.size();
          for ( int index =0; index < size; ++index )
          {
             if ( index > 0 )
-               document_ += ", ";
+               document_ += ",";
             writeValue( value[index] );
          }
-         document_ += " ]";
+         document_ += "]";
       }
       break;
    case objectValue:
       {
          Value::Members members( value.getMemberNames() );
-         document_ += "{ ";
+         document_ += "{";
          for ( Value::Members::iterator it = members.begin(); 
                it != members.end(); 
                ++it )
          {
             const std::string &name = *it;
             if ( it != members.begin() )
-               document_ += ", ";
+               document_ += ",";
             document_ += valueToQuotedString( name.c_str() );
-            document_ += " : ";
+            document_ += yamlCompatiblityEnabled_ ? ": " 
+                                                  : ":";
             writeValue( value[name] );
          }
-         document_ += " }";
+         document_ += "}";
       }
       break;
    }
