diff --git a/Doc/perl/ltxmarkup.perl b/Doc/perl/ltxmarkup.perl
index 9136e61..92667e4 100644
--- a/Doc/perl/ltxmarkup.perl
+++ b/Doc/perl/ltxmarkup.perl
@@ -15,22 +15,37 @@
 sub do_cmd_macro{
     local($_) = @_;
     my $macro = ltx_next_argument();
-    return "<tt class='macro'>&#92;$macro</tt>" . $_;
+    return "<tt class=macro>&#92;$macro</tt>" . $_;
 }
 
 sub do_cmd_env{
     local($_) = @_;
     my $env = ltx_next_argument();
-    return "<tt class='environment'>&#92;$env</tt>" . $_;
+    return "<tt class=environment>&#92;$env</tt>" . $_;
+}
+
+sub ltx_process_params{
+    # Handle processing of \p and \op for parameter specifications for
+    # envdesc and macrodesc.  It's done this way to avoid defining do_cmd_p()
+    # and do_cmd_op() functions, which would be interpreted outside the context
+    # in which these commands are legal, and cause LaTeX2HTML to think they're
+    # defined.  This way, other uses of \p and \op are properly flagged as
+    # unknown macros.
+    my $s = @_[0];
+    $s =~ s%\\op<<(\d+)>>(.+)<<\1>>%<tt>[</tt><var>$2</var><tt>]</tt>%;
+    while ($s =~ /\\p<<(\d+)>>(.+)<<\1>>/) {
+	$s =~ s%\\p<<(\d+)>>(.+)<<\1>>%<tt>{</tt><var>$2</var><tt>}</tt>%;
+    }
+    return $s;
 }
 
 sub do_env_macrodesc{
     local($_) = @_;
     my $macro = ltx_next_argument();
-    my $params = ltx_next_argument();
-    return "\n<dl class='macrodesc'>"
-         . "\n<dt><b><tt class='macro'>&#92;$macro</tt></b>"
-         . "\n                         $params"
+    my $params = ltx_process_params(ltx_next_argument());
+    return "\n<dl class=macrodesc>"
+         . "\n<dt><b><tt class=macro>&#92;$macro</tt></b>"
+         . "\n                       $params"
 	 . "\n<dd>"
 	 . $_
 	 . "</dl>";
@@ -39,10 +54,10 @@
 sub do_env_envdesc{
     local($_) = @_;
     my $env = ltx_next_argument();
-    my $params = ltx_next_argument();
-    return "\n<dl class='envdesc'>"
-         . "\n<dt><b><tt class='environment'>&#92;$env</tt></b>"
-         . "\n                               $params"
+    my $params = ltx_process_params(ltx_next_argument());
+    return "\n<dl class=envdesc>"
+         . "\n<dt><b><tt class=environment>&#92;$env</tt></b>"
+         . "\n                             $params"
 	 . "\n<dd>"
 	 . $_
 	 . "</dl>";
