diff --git a/glib/gconvert.c b/glib/gconvert.c
index b363bca..1fd9a4c 100644
--- a/glib/gconvert.c
+++ b/glib/gconvert.c
@@ -763,20 +763,16 @@ g_convert_with_iconv (const gchar *str,
 	      }
 	      break;
 	    case EILSEQ:
-	      if (error)
-		g_set_error_literal (error, G_CONVERT_ERROR, G_CONVERT_ERROR_ILLEGAL_SEQUENCE,
-                                     _("Invalid byte sequence in conversion input"));
+              g_set_error_literal (error, G_CONVERT_ERROR, G_CONVERT_ERROR_ILLEGAL_SEQUENCE,
+                                   _("Invalid byte sequence in conversion input"));
 	      have_error = TRUE;
 	      break;
 	    default:
-	      if (error)
-                {
-                  int errsv = errno;
-
-                  g_set_error (error, G_CONVERT_ERROR, G_CONVERT_ERROR_FAILED,
-                               _("Error during conversion: %s"),
-                               g_strerror (errsv));
-                }
+                int errsv = errno;
+
+                g_set_error (error, G_CONVERT_ERROR, G_CONVERT_ERROR_FAILED,
+                             _("Error during conversion: %s"),
+                             g_strerror (errsv));
 	      have_error = TRUE;
 	      break;
 	    }
@@ -804,9 +800,8 @@ g_convert_with_iconv (const gchar *str,
 	{
           if (!have_error)
             {
-	      if (error)
-		g_set_error_literal (error, G_CONVERT_ERROR, G_CONVERT_ERROR_PARTIAL_INPUT,
-                                     _("Partial character sequence at end of input"));
+              g_set_error_literal (error, G_CONVERT_ERROR, G_CONVERT_ERROR_PARTIAL_INPUT,
+                                   _("Partial character sequence at end of input"));
               have_error = TRUE;
             }
 	}
