diff --git a/ppd/PPD/PJL.pm b/ppd/PPD/PJL.pm
index ae0b66f28ed720d84034521447da2bbefa8aa9e3..4019e89483706f3ef96d84419a454b9ddf37e497 100644
--- a/ppd/PPD/PJL.pm
+++ b/ppd/PPD/PJL.pm
@@ -1,5 +1,8 @@
 package PPD::PJL;
 
+use Exporter 'import';
+our @EXPORT = qw(jopt);
+
 use PPD;
 
 sub add_jcl($) {
@@ -10,4 +13,14 @@ sub add_jcl($) {
 	set('JCLEnd', '<1B>%-12345X@PJL EOJ<0A><1B>%-12345X<0A>');
 }
 
+sub jopt {
+	my $out = "";
+	while (@_) {
+		my $key = shift @_;
+		my $val = shift @_;
+		$out .= sprintf('@PJL SET %s=%s<0A>', $key, $val);
+	}
+	return $out;
+}
+
 42;
diff --git a/ppd/gen-nessie-xcpt b/ppd/gen-nessie-xcpt
index d7a4ab5eb4576e6fa0f390ae300400aac98dc23b..e489c89ed6711231296760b1d8e47a167e941818 100755
--- a/ppd/gen-nessie-xcpt
+++ b/ppd/gen-nessie-xcpt
@@ -31,17 +31,6 @@ set('cupsFilter', 'application/vnd.cups-pdf 0 /aux/root/xcpt');
 set('ColorDevice', 1);
 set('DefaultColorSpace', 'CMYK');
 
-# FIXME: Librarize
-sub jopt {
-	my $out = "";
-	while (@_) {
-		my $key = shift @_;
-		my $val = shift @_;
-		$out .= sprintf('@PJL SET %s=%s<0A>', $key, $val);
-	}
-	return $out;
-}
-
 define_ui_group({ Key => 'Basic', Name => 'Basic options' });
 
 option({