diff --git a/src/post_modules/Nettle/cipher.cmod b/src/post_modules/Nettle/cipher.cmod
index 7e099d13689d7eeb01d1f873f41fcf049b1333d9..b908825032f24ee9a14758c35f5fcb38a85ceeb3 100644
--- a/src/post_modules/Nettle/cipher.cmod
+++ b/src/post_modules/Nettle/cipher.cmod
@@ -571,6 +571,12 @@ pike_des_set_key(void *c,
 
   if (!des_set_key(ctx, (const uint8_t *)key))
   {
+#ifndef DES_WEAK_KEY
+    /* Nettle 2.1 and later. */
+    if (!force)
+      Pike_error("DES_INFO: Key is weak.\n");
+#else
+    /* Nettle 2.0 and earlier. */
     switch (ctx->status)
     {
     case DES_WEAK_KEY:
@@ -588,6 +594,7 @@ pike_des_set_key(void *c,
     default:
       Pike_error("DES_INFO: Unexpected error, please send a bug report.\n");
     }
+#endif
   }
 }
 
@@ -746,6 +753,13 @@ pike_des3_set_key(void *c,
    * individual keys by ourself. */
   for (i = 0; i<3; i++, key += DES_KEY_SIZE)
     if (!des_set_key(&ctx->des[i], (const uint8_t *)key))
+    {
+#ifndef DES_WEAK_KEY
+      /* Nettle 2.1 and later. */
+      if (!force)
+	Pike_error("DES3_INFO: Key is weak.\n");
+#else
+      /* Nettle 2.0 and earlier. */
       switch (ctx->des[i].status)
       {
       case DES_WEAK_KEY:
@@ -762,6 +776,8 @@ pike_des3_set_key(void *c,
 	Pike_error("DES3_INFO: Key has bad parity.\n");
       default:
 	Pike_error("DES3_INFO: Unexpected error, please send a bug report.\n");
+      }
+#endif
     }
 }
 #define pike_des3_set_encrypt_key pike_des3_set_key