diff --git a/backend/pnm.c b/backend/pnm.c
index fa40cb3b3..e313eecca 100644
--- a/backend/pnm.c
+++ b/backend/pnm.c
@@ -40,7 +40,7 @@
    whether to permit this exception to apply to your modifications.
    If you do not wish that, delete this exception notice.  */
 
-#define BUILD 3
+#define BUILD 4
 
 #include "../include/sane/config.h"
 
@@ -162,7 +162,7 @@ static SANE_Option_Descriptor sod[] =
   { /* opt_source_group */
     "",
     SANE_I18N("Source Selection"),
-    SANE_I18N("Selection of the file to load."),
+    "",
     SANE_TYPE_GROUP,
     SANE_UNIT_NONE,
     0,
@@ -196,7 +196,7 @@ static SANE_Option_Descriptor sod[] =
   { /* opt_enhancement_group */
     "",
     SANE_I18N("Image Enhancement"),
-    SANE_I18N("A few controls to enhance image while loading"),
+    "",
     SANE_TYPE_GROUP,
     SANE_UNIT_NONE,
     0,
@@ -252,9 +252,10 @@ static SANE_Option_Descriptor sod[] =
   { /* opt_hand_scanner */
     "hand-scanner",
     SANE_I18N("Hand-Scanner Simulation"),
-    SANE_I18N("Simulate a hand-scanner.  Hand-scanners often do not know the image "
-    "height a priori.  Instead, they return a height of -1.  Setting this "
-    "option allows to test whether a frontend can handle this correctly."),
+    SANE_I18N("Simulate a hand-scanner.  Hand-scanners often do not know the "
+	      "image height a priori.  Instead, they return a height of -1.  "
+	      "Setting this option allows to test whether a frontend can "
+	      "handle this correctly."),
     SANE_TYPE_BOOL,
     SANE_UNIT_NONE,
     sizeof (SANE_Word),
@@ -265,7 +266,8 @@ static SANE_Option_Descriptor sod[] =
   { /* opt_default_enhancements */
     "default-enhancements",
     SANE_I18N("Defaults"),
-    SANE_I18N("Set default values for enhancement controls (brightness & contrast)."),
+    SANE_I18N("Set default values for enhancement controls (brightness & "
+	      "contrast)."),
     SANE_TYPE_BUTTON,
     SANE_UNIT_NONE,
     0,
@@ -286,8 +288,8 @@ static SANE_Option_Descriptor sod[] =
   },
   {  /* opt_gamma_group */
     "",
-    SANE_I18N("Gamma tables"),
-    SANE_I18N("Selection of custom gamma tables."),
+    SANE_I18N("Gamma Tables"),
+    "",
     SANE_TYPE_GROUP,
     SANE_UNIT_NONE,
     0,
@@ -353,9 +355,7 @@ static SANE_Option_Descriptor sod[] =
   { /* opt_status_group */
     "",
     SANE_I18N("Status Code Simulation"),
-    SANE_I18N("Forces the backend to return a specific status code after a call "
-    "to sane_read(). This can be used to test whether a frontend is able "
-    "to treat the status codes correctly."),
+    "",
     SANE_TYPE_GROUP,
     SANE_UNIT_NONE,
     0,
@@ -377,8 +377,8 @@ static SANE_Option_Descriptor sod[] =
   { /* opt_status_eof */
     "status-eof",
     SANE_I18N("Return SANE_STATUS_EOF"),
-    SANE_I18N("Force the backend to return the status code SANE_STATUS_EOF after "
-    "sane_read() has been called.") ,
+    SANE_I18N("Force the backend to return the status code SANE_STATUS_EOF "
+	      "after sane_read() has been called."),
     SANE_TYPE_BOOL,
     SANE_UNIT_NONE,
     sizeof(SANE_Bool),
@@ -389,8 +389,8 @@ static SANE_Option_Descriptor sod[] =
   { /* opt_status_jammed */
     "status-jammed",
     SANE_I18N("Return SANE_STATUS_JAMMED"),
-    SANE_I18N("Force the backend to return the status code SANE_STATUS_JAMMED after "
-    "sane_read() has been called.") ,
+    SANE_I18N("Force the backend to return the status code SANE_STATUS_JAMMED "
+	      "after sane_read() has been called."),
     SANE_TYPE_BOOL,
     SANE_UNIT_NONE,
     sizeof(SANE_Bool),
@@ -401,8 +401,8 @@ static SANE_Option_Descriptor sod[] =
   { /* opt_status_nodocs */
     "status-nodocs",
     SANE_I18N("Return SANE_STATUS_NO_DOCS"),
-    SANE_I18N("Force the backend to return the status code SANE_STATUS_NO_DOCS after "
-    "sane_read() has been called.") ,
+    SANE_I18N("Force the backend to return the status code "
+	      "SANE_STATUS_NO_DOCS after sane_read() has been called."),
     SANE_TYPE_BOOL,
     SANE_UNIT_NONE,
     sizeof(SANE_Bool),
@@ -413,8 +413,8 @@ static SANE_Option_Descriptor sod[] =
   { /* opt_status_coveropen */
     "status-coveropen",
     SANE_I18N("Return SANE_STATUS_COVER_OPEN"),
-    SANE_I18N("Force the backend to return the status code SANE_STATUS_COVER_OPEN after "
-    "sane_read() has been called.") ,
+    SANE_I18N("Force the backend to return the status code "
+	      "SANE_STATUS_COVER_OPEN after sane_read() has been called."),
     SANE_TYPE_BOOL,
     SANE_UNIT_NONE,
     sizeof(SANE_Bool),
@@ -425,8 +425,8 @@ static SANE_Option_Descriptor sod[] =
   { /* opt_status_ioerror */
     "status-ioerror",
     SANE_I18N("Return SANE_STATUS_IO_ERROR"),
-    SANE_I18N("Force the backend to return the status code SANE_STATUS_IO_ERROR after "
-    "sane_read() has been called.") ,
+    SANE_I18N("Force the backend to return the status code "
+	      "SANE_STATUS_IO_ERROR after sane_read() has been called."),
     SANE_TYPE_BOOL,
     SANE_UNIT_NONE,
     sizeof(SANE_Bool),
@@ -437,8 +437,8 @@ static SANE_Option_Descriptor sod[] =
   { /* opt_status_nomem */
     "status-nomem",
     SANE_I18N("Return SANE_STATUS_NO_MEM"),
-    SANE_I18N("Force the backend to return the status code SANE_STATUS_NO_MEM after "
-    "sane_read() has been called.") ,
+    SANE_I18N("Force the backend to return the status code SANE_STATUS_NO_MEM "
+	      "after sane_read() has been called."),
     SANE_TYPE_BOOL,
     SANE_UNIT_NONE,
     sizeof(SANE_Bool),
@@ -449,8 +449,8 @@ static SANE_Option_Descriptor sod[] =
   { /* opt_status_accessdenied */
     "status-accessdenied",
     SANE_I18N("Return SANE_STATUS_ACCESS_DENIED"),
-    SANE_I18N("Force the backend to return the status code SANE_STATUS_ACCESS_DENIED "
-    "after sane_read() has been called.") ,
+    SANE_I18N("Force the backend to return the status code "
+	      "SANE_STATUS_ACCESS_DENIED after sane_read() has been called."),
     SANE_TYPE_BOOL,
     SANE_UNIT_NONE,
     sizeof(SANE_Bool),
diff --git a/backend/pnm.desc b/backend/pnm.desc
index 6ff604ecd..e23b15040 100644
--- a/backend/pnm.desc
+++ b/backend/pnm.desc
@@ -1,5 +1,5 @@
 :backend "pnm"
-:version "1.0.3"
+:version "1.0.4"
 :status :beta
 :manpage "sane-pnm"
 :url "mailto:henning@meier-geinitz.de"
diff --git a/po/pnm.de.po b/po/pnm.de.po
index 11b4b1762..c0c512837 100644
--- a/po/pnm.de.po
+++ b/po/pnm.de.po
@@ -4,8 +4,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: sane-backends 1.0.7\n"
-"POT-Creation-Date: 2002-01-11 19:24+0100\n"
-"PO-Revision-Date: 2002-01-09 14:46+0100\n"
+"POT-Creation-Date: 2002-01-15 22:33+0100\n"
+"PO-Revision-Date: 2002-01-15 23:29+0100\n"
 "Last-Translator: Henning Meier-Geinitz <henning@meier-geinitz.de>\n"
 "Language-Team: \n"
 "MIME-Version: 1.0\n"
@@ -16,18 +16,10 @@ msgstr ""
 msgid "Source Selection"
 msgstr "Dateiauswahl"
 
-#: .tmp/pnm.c:165
-msgid "Selection of the file to load."
-msgstr "Auswahl der zu ladenden Datei"
-
 #: .tmp/pnm.c:198
 msgid "Image Enhancement"
 msgstr "Bildkorrektur"
 
-#: .tmp/pnm.c:199
-msgid "A few controls to enhance image while loading"
-msgstr "Einige Einstellungen zur Verbesserung des Bildes w�hrend des Ladens"
-
 #: .tmp/pnm.c:231
 msgid "Grayify"
 msgstr "Graustufen"
@@ -63,47 +55,32 @@ msgstr ""
 "Mit dieser Option kann man pr�fen, ob das Frontend damit richtig umgehen "
 "kann."
 
-#: .tmp/pnm.c:267
+#: .tmp/pnm.c:268
 msgid "Defaults"
 msgstr "Defaulteinstellungen"
 
-#: .tmp/pnm.c:268
+#: .tmp/pnm.c:269
 msgid "Set default values for enhancement controls (brightness & contrast)."
 msgstr ""
 "Stellt die Farbverbesserungseinstellungen (Helligkeit und Kontrast) auf "
 "Defaultwerte."
 
-#: .tmp/pnm.c:278
+#: .tmp/pnm.c:280
 msgid "Read only test-option"
 msgstr "Nur-Lese-Testoption"
 
-#: .tmp/pnm.c:279
+#: .tmp/pnm.c:281
 msgid "Let's see whether frontends can treat this right"
 msgstr "Mal sehen, ob das Frontend damit umgehen kann."
 
-#: .tmp/pnm.c:289
-msgid "Gamma tables"
+#: .tmp/pnm.c:291
+msgid "Gamma Tables"
 msgstr "Gammatabellen"
 
-#: .tmp/pnm.c:290
-msgid "Selection of custom gamma tables."
-msgstr "Auswahl der benutzerdefinierten Gammatabellen."
-
-#: .tmp/pnm.c:355
+#: .tmp/pnm.c:357
 msgid "Status Code Simulation"
 msgstr "Statuscode Simulation"
 
-#: .tmp/pnm.c:356
-#, fuzzy
-msgid ""
-"Forces the backend to return a specific status code after a call to sane_read"
-"(). This can be used to test whether a frontend is able to treat the status "
-"codes correctly."
-msgstr ""
-"Zwingt das Backend, einen bestimmten Statuscode nach dem Aufruf von sane_read"
-"() zur�ckzuliefern. Damit kann man pr�fen, ob ein Frontend die Statuscodes "
-"richtig behandeln kann."
-
 #: .tmp/pnm.c:368
 msgid "Do not force status code"
 msgstr "Keinen Statuscode erzwingen"
@@ -198,7 +175,7 @@ msgstr ""
 
 #: .tmp/saneopts.h:105
 msgid "Number of options"
-msgstr ""
+msgstr "Optionsanzahl"
 
 #: .tmp/saneopts.h:106
 msgid "Preview"
@@ -258,7 +235,7 @@ msgstr ""
 
 #: .tmp/saneopts.h:120
 msgid "Use custom gamma table"
-msgstr "Verwende eine benutzerdefinierte Gammatabelle"
+msgstr "Verwende benutzerdefinierte Gammatabelle"
 
 #: .tmp/saneopts.h:121
 msgid "Image intensity"
@@ -471,7 +448,7 @@ msgstr ""
 #: .tmp/saneopts.h:178
 msgid ""
 "Read-only option that specifies how many options a specific devices supports."
-msgstr ""
+msgstr "Read-Only-Option, die angibt, wieviele Optionen ein bestimmtes Ger�t unterst�tzt."
 
 #: .tmp/saneopts.h:182
 msgid "Request a preview-quality scan."
@@ -536,8 +513,7 @@ msgstr ""
 
 #: .tmp/saneopts.h:228
 msgid "Determines whether a builtin or a custom gamma-table should be used."
-msgstr ""
-"Legt fest, dass eine benutzerdefinierte Gammatabelle verwendet werden soll."
+msgstr "Legt fest, ob eine eingebaute oder benutzerdefinierte Gammatabelle verwendet werden soll."
 
 #: .tmp/saneopts.h:232
 msgid ""