diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index b50eacf5e46557634cfe6c11932b62ad66a1ab49..916f5a2d9dd303646ba2d0ff98a143e347b78ad5 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,3 +1,19 @@
+2012-01-30  Hristian Kirtchev  <kirtchev@adacore.com>
+
+	* exp_ch7.adb (Build_Finalizer_Call): Set loc again.
+	* exp_ch11.adb (Expand_At_End_Handler): Do not provide a source
+	location for the wrapped call to the original AT_END routine
+	and the subsequent return statement.
+
+2012-01-30  Pascal Obry  <obry@adacore.com>
+
+	* s-rannum.adb: Minor reformatting.
+
+2012-01-30  Hristian Kirtchev  <kirtchev@adacore.com>
+
+	* a-calend-vms.adb, a-calend.adb: Increment the number of leap seconds
+	to 25 and add the hard time value for 2012-06-30.
+
 2012-01-30  Robert Dewar  <dewar@adacore.com>
 
 	* a-strhas.ads, einfo.adb, einfo.ads, exp_ch7.adb, exp_ch9.adb,
diff --git a/gcc/ada/a-calend-vms.adb b/gcc/ada/a-calend-vms.adb
index 788ff28a4d0145fb80b82dfda5fa4816963854db..f9453c33501a6cc3bc50a5efdd2329af2cc0ac1f 100644
--- a/gcc/ada/a-calend-vms.adb
+++ b/gcc/ada/a-calend-vms.adb
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---          Copyright (C) 1992-2009, Free Software Foundation, Inc.         --
+--          Copyright (C) 1992-2012, Free Software Foundation, Inc.         --
 --                                                                          --
 -- GNAT is free software;  you can  redistribute it  and/or modify it under --
 -- terms of the  GNU General Public License as published  by the Free Soft- --
@@ -126,7 +126,7 @@ package body Ada.Calendar is
    --  The above flag controls the usage of leap seconds in all Ada.Calendar
    --  routines.
 
-   Leap_Seconds_Count : constant Natural := 24;
+   Leap_Seconds_Count : constant Natural := 25;
 
    ---------------------
    -- Local Constants --
@@ -177,7 +177,8 @@ package body Ada.Calendar is
       43744320200000000,
       44218656210000000,
       46427904220000000,
-      47374848230000000);
+      47374848230000000,
+      48478176240000000);
 
    ---------
    -- "+" --
diff --git a/gcc/ada/a-calend.adb b/gcc/ada/a-calend.adb
index d85eb2cbc5b3efa0b354a3eb867e9efe3c4b59ce..f79b9d1e7f553cd71ec158d62d28925691ea5471 100644
--- a/gcc/ada/a-calend.adb
+++ b/gcc/ada/a-calend.adb
@@ -155,7 +155,7 @@ package body Ada.Calendar is
    Leap_Support : constant Boolean := (Flag = 1);
    --  Flag to controls the usage of leap seconds in all Ada.Calendar routines
 
-   Leap_Seconds_Count : constant Natural := 24;
+   Leap_Seconds_Count : constant Natural := 25;
 
    ---------------------
    -- Local Constants --
@@ -237,7 +237,8 @@ package body Ada.Calendar is
       -4812566380000000000,
       -4765132779000000000,
       -4544207978000000000,
-      -4449513577000000000);
+      -4449513577000000000,
+      -4339180776000000000);
 
    ---------
    -- "+" --
diff --git a/gcc/ada/exp_ch11.adb b/gcc/ada/exp_ch11.adb
index 7a8f89c0607b9f3a4ac3fb9327169fceefccc60a..67f4a5837df7d9a86439d1968db5dad7f7e79b0a 100644
--- a/gcc/ada/exp_ch11.adb
+++ b/gcc/ada/exp_ch11.adb
@@ -101,10 +101,17 @@ package body Exp_Ch11 is
 
    procedure Expand_At_End_Handler (HSS : Node_Id; Block : Node_Id) is
       Clean   : constant Entity_Id  := Entity (At_End_Proc (HSS));
-      Loc     : constant Source_Ptr := Sloc (Clean);
       Ohandle : Node_Id;
       Stmnts  : List_Id;
 
+      Loc : constant Source_Ptr := No_Location;
+      --  Location used for expansion. We quite deliberately do not set a
+      --  specific source location for the expanded handler. This makes
+      --  sense since really the handler is not associated with specific
+      --  source. We used to set this to Sloc (Clean), but that caused
+      --  useless and annoying bouncing around of line numbers in the
+      --  debugger in some circumstances.
+
    begin
       pragma Assert (Present (Clean));
       pragma Assert (No (Exception_Handlers (HSS)));
diff --git a/gcc/ada/exp_ch7.adb b/gcc/ada/exp_ch7.adb
index 78a61807a3342b5e7bdb4d97f57d096f3fae6d2c..9aac12304835d9ebd753145fd68f28fe36b91bcc 100644
--- a/gcc/ada/exp_ch7.adb
+++ b/gcc/ada/exp_ch7.adb
@@ -2843,7 +2843,7 @@ package body Exp_Ch7 is
       --  Determine whether N denotes the protected version of a subprogram
       --  which belongs to a protected type.
 
-      Loc : constant Source_Ptr := No_Location;
+      Loc : constant Source_Ptr := Sloc (N);
       HSS : Node_Id;
 
    begin
diff --git a/gcc/ada/s-rannum.adb b/gcc/ada/s-rannum.adb
index ca38408d318b317efa27a35a57184c37f3c258e7..21d879923a3bf017e82dde373c181a27a2643c43 100644
--- a/gcc/ada/s-rannum.adb
+++ b/gcc/ada/s-rannum.adb
@@ -690,4 +690,5 @@ package body System.Random_Numbers is
    begin
       return State_Val'Value (S (Start .. Start + Image_Numeral_Length - 1));
    end Extract_Value;
+
 end System.Random_Numbers;