Hi Sawhorse,

I finally found the cause of the problem!

In older versions of Zen Cart none of the buttons had a css class. But in one of the 1.3.x versions, silently it seems, a class has been added to the product listing buy now button. This class is not added to the button on a default install, but it appears to depend on some admin setting(s)....

And that class is the "listingBuyNowButton" class that we see on your product listing buy now button.

This class overrides the css button class because the css button code prevents the class parameter to be defined twice (which would make the code invalid). That is why the button does not work as a css button under the given circumstances.

It has been a long and frustrating search but, once I found the exact cause of the problem, the solution was quite easy to find

In includes/functions/extra_functions/css_buttons.php find:
Code:
  if (strpos($parameters, 'class="') === FALSE){
  // only add class if no class is passed through $parameters
    $class = ' class="' . $mouse_out_class . '" ' . $css_button_js;
  }
And replace with:
Code:
  if (!(strpos($parameters, 'class="') === FALSE)){
    // if $parameters contains a class definition add the css buttons class to it
    $parameters = str_replace('class="', 'class="' . $mouse_out_class . ' ', $parameters);
    $parameters .= ' ' . $css_button_js;
    $class = '';
  }else{
    // no class found in $parameters
    $class = ' class="' . $mouse_out_class . '" ' . $css_button_js;
  }

(The reason that this problem does not occur when using the default Zen Cart css buttons is because the Zen Cart css buttons code clears all button parameters. But that is a bad solution as it invokes some other nasty bugs.)