diff --git a/common/hw-gfx-dp_training.adb b/common/hw-gfx-dp_training.adb
index 7b06679..7a7bd78 100644
--- a/common/hw-gfx-dp_training.adb
+++ b/common/hw-gfx-dp_training.adb
@@ -202,16 +202,32 @@
             Debug.Put_Int8 (Int8 (Lane));
             Debug.Put_Line (":");
 
-            Debug.Put_Line ("    CR_Done        : " &
-              (if Status.Lanes (Lane).CR_Done         then "1" else "0"));
-            Debug.Put_Line ("    Channel_EQ_Done: " &
-              (if Status.Lanes (Lane).Channel_EQ_Done then "1" else "0"));
-            Debug.Put_Line ("    Symbol_Locked  : " &
-              (if Status.Lanes (Lane).Symbol_Locked   then "1" else "0"));
+            Debug.Put ("    CR_Done        : ");
+            if Status.Lanes (Lane).CR_Done then
+               Debug.Put_Line ("1");
+            else
+               Debug.Put_Line ("0");
+            end if;
+            Debug.Put ("    Channel_EQ_Done: ");
+            if Status.Lanes (Lane).Channel_EQ_Done then
+               Debug.Put_Line ("1");
+            else
+               Debug.Put_Line ("0");
+            end if;
+            Debug.Put ("    Symbol_Locked  : ");
+            if Status.Lanes (Lane).Symbol_Locked then
+               Debug.Put_Line ("1");
+            else
+               Debug.Put_Line ("0");
+            end if;
          end loop;
 
-         Debug.Put_Line ("  Interlane_Align_Done: " &
-           (if Status.Interlane_Align_Done then "1" else "0"));
+         Debug.Put ("  Interlane_Align_Done: ");
+         if Status.Interlane_Align_Done then
+            Debug.Put_Line ("1");
+         else
+            Debug.Put_Line ("0");
+         end if;
 
          for Lane in DP_Info.Lane_Index range 0
             .. DP_Info.Lane_Index (Lane_Count_As_Integer (Link.Lane_Count) - 1)
diff --git a/common/hw-gfx-gma.adb b/common/hw-gfx-gma.adb
index 33f8ef6..3ad37e6 100644
--- a/common/hw-gfx-gma.adb
+++ b/common/hw-gfx-gma.adb
@@ -1070,9 +1070,11 @@
          else
             Debug.Put ("   ");
          end if;
-         Debug.Put_Line (Pipe_Names (Pipe) & " =>");
-         Debug.Put_Line
-           ("     (Port => " & Port_Names (Configs (Pipe).Port) & ",");
+         Debug.Put (Pipe_Names (Pipe));
+         Debug.Put_Line (" =>");
+         Debug.Put ("     (Port => ");
+         Debug.Put (Port_Names (Configs (Pipe).Port));
+         Debug.Put_Line (",");
          Debug.Put_Line ("      Framebuffer =>");
          Debug.Put ("        (Width     => ");
          Debug.Put_Int32 (Configs (Pipe).Framebuffer.Width);
@@ -1093,9 +1095,11 @@
          Debug.Put_Int32 (Configs (Pipe).Framebuffer.V_Stride);
          Debug.Put_Line (",");
          Debug.Put ("         Tiling    => ");
-         Debug.Put_Line (Tilings (Configs (Pipe).Framebuffer.Tiling) & ",");
+         Debug.Put (Tilings (Configs (Pipe).Framebuffer.Tiling));
+         Debug.Put_Line (",");
          Debug.Put ("         Rotation  => ");
-         Debug.Put_Line (Rotations (Configs (Pipe).Framebuffer.Rotation) & ",");
+         Debug.Put (Rotations (Configs (Pipe).Framebuffer.Rotation));
+         Debug.Put_Line (",");
          Debug.Put ("         Offset => ");
          Debug.Put_Word32 (Configs (Pipe).Framebuffer.Offset);
          Debug.Put_Line (",");
@@ -1130,14 +1134,18 @@
          Debug.Put ("         V_Total            => ");
          Debug.Put_Int32 (Configs (Pipe).Mode.V_Total);
          Debug.Put_Line (",");
-         Debug.Put_Line ("         H_Sync_Active_High => " &
-           (if Configs (Pipe).Mode.H_Sync_Active_High
-            then "True,"
-            else "False,"));
-         Debug.Put_Line ("         V_Sync_Active_High => " &
-           (if Configs (Pipe).Mode.V_Sync_Active_High
-            then "True,"
-            else "False,"));
+         Debug.Put ("         H_Sync_Active_High => ");
+         if Configs (Pipe).Mode.H_Sync_Active_High then
+            Debug.Put_Line ("True,");
+         else
+            Debug.Put_Line ( "False,");
+         end if;
+         Debug.Put ("         V_Sync_Active_High => ");
+         if Configs (Pipe).Mode.V_Sync_Active_High then
+            Debug.Put_Line ("True,");
+         else
+            Debug.Put_Line ("False,");
+         end if;
          Debug.Put ("         BPC                => ");
          Debug.Put_Int64 (Configs (Pipe).Mode.BPC);
          if Pipe /= Pipe_Index'Last then
