Index: kernel/arch/amd64/src/interrupt.c
===================================================================
--- kernel/arch/amd64/src/interrupt.c	(revision 3063d56f9039cd500c06507c8f1d7cffea49ed3d)
+++ kernel/arch/amd64/src/interrupt.c	(revision 47a350ff35743ebcc45e185d8b5218aaf60d91ea)
@@ -98,4 +98,11 @@
 }
 
+static void de_fault(int n, istate_t *istate)
+{
+	fault_if_from_uspace(istate, "Divide error.");
+	decode_istate(n, istate);
+	panic("Divide error.");
+}
+
 /** General Protection Fault. */
 static void gp_fault(int n, istate_t *istate)
@@ -200,4 +207,5 @@
 	}
 	
+	exc_register(0, "de_fault", (iroutine) de_fault);
 	exc_register(7, "nm_fault", (iroutine) nm_fault);
 	exc_register(12, "ss_fault", (iroutine) ss_fault);
Index: kernel/arch/ia32/src/interrupt.c
===================================================================
--- kernel/arch/ia32/src/interrupt.c	(revision 3063d56f9039cd500c06507c8f1d7cffea49ed3d)
+++ kernel/arch/ia32/src/interrupt.c	(revision 47a350ff35743ebcc45e185d8b5218aaf60d91ea)
@@ -98,4 +98,12 @@
 }
 
+static void de_fault(int n, istate_t *istate)
+{
+	fault_if_from_uspace(istate, "Divide error.");
+
+	decode_istate(istate);
+	panic("Divide error.");
+}
+
 /** General Protection Fault. */
 static void gp_fault(int n __attribute__((unused)), istate_t *istate)
@@ -215,4 +223,5 @@
 	}
 	
+	exc_register(0, "de_fault", (iroutine) de_fault);
 	exc_register(7, "nm_fault", (iroutine) nm_fault);
 	exc_register(12, "ss_fault", (iroutine) ss_fault);
