diff --git a/arch/alpha/kernel/init_task.c b/arch/alpha/kernel/init_task.c
index 608161944ee895f0ffa3dcbd533d36c0c502f093..570582b28d440140ee4b05d6206c7ea05c31c951 100644
--- a/arch/alpha/kernel/init_task.c
+++ b/arch/alpha/kernel/init_task.c
@@ -9,6 +9,7 @@
 static struct fs_struct init_fs = INIT_FS;
 static struct files_struct init_files = INIT_FILES;
 static struct signal_struct init_signals = INIT_SIGNALS(init_signals);
+static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand);
 struct mm_struct init_mm = INIT_MM(init_mm);
 struct task_struct init_task = INIT_TASK(init_task);
 
diff --git a/arch/alpha/kernel/signal.c b/arch/alpha/kernel/signal.c
index a5295ceda9087a69b8d7ec5720a353faa1248144..9ba45b35af0036c5a25db8a29bec411e920b0cb7 100644
--- a/arch/alpha/kernel/signal.c
+++ b/arch/alpha/kernel/signal.c
@@ -623,7 +623,7 @@ do_signal(sigset_t *oldset, struct pt_regs * regs, struct switch_stack * sw,
 
 	if (signr > 0) {
 		/* Whee!  Actually deliver the signal.  */
-		struct k_sigaction *ka = &current->sig->action[signr-1];
+		struct k_sigaction *ka = &current->sighand->action[signr-1];
 
 		if (r0) syscall_restart(r0, r19, regs, ka);
 		handle_signal(signr, ka, &info, oldset, regs, sw);