diff --git a/NEWS b/NEWS
index b101100f0ebd0a340128aa4fc7214995d08d228d..33a93e84c8aa8dfde01a4d87315cf60a7e3ca7ea 100644
--- a/NEWS
+++ b/NEWS
@@ -18,6 +18,7 @@ documents those changes that are of interest to users and admins.
  -- Copied job stat logic out of sacct into sstat in the future sacct -stat 
     will be deprecated.
  -- Correct sbatch processing of --nice option with negative values.
+ -- Add squeue formatted print option %Q to print a job's integer priority.
 
 * Changes in SLURM 1.3.2
 ========================
diff --git a/doc/man/man1/squeue.1 b/doc/man/man1/squeue.1
index 8d05b602f588894ff47ea8f8e478d28056bb9b84..73e8e1868fbc98b68ae04df11cc29b5fa992d879 100644
--- a/doc/man/man1/squeue.1
+++ b/doc/man/man1/squeue.1
@@ -1,4 +1,4 @@
-.TH SQUEUE "1" "December 2006" "squeue 1.2" "Slurm components"
+.TH SQUEUE "1" "May 2008" "squeue 1.3" "Slurm components"
 
 .SH "NAME"
 squeue \- view information about jobs located in the SLURM scheduling queue.
@@ -189,7 +189,8 @@ Minimum number of nodes requested by the job.
 Are contiguous nodes requested by the job
 .TP
 \fB%p\fR
-Priority of the job (converted to a floating point number between 0.0 and 1.0
+Priority of the job (converted to a floating point number between 0.0 and 1.0).
+Also see \fB%Q\fR.
 .TP
 \fB%P\fR 
 Partition of the job or job step
@@ -197,6 +198,10 @@ Partition of the job or job step
 \fB%q\fR 
 Comment associated with the job
 .TP
+\fB%Q\fR
+Priority of the job (generally a very large unsigned integer).
+Also see \fB%p\fR.
+.TP
 \fB%r\fR
 The reason a job is in its current state.
 See the \fBJOB REASON CODES\fR section below for more information.
diff --git a/src/squeue/opts.c b/src/squeue/opts.c
index 154ad1f70f8a0c09b1848171cd67c975f24dc9a3..8abdb3142b075e7a4116c3d35bb2a6866c828c69 100644
--- a/src/squeue/opts.c
+++ b/src/squeue/opts.c
@@ -558,6 +558,11 @@ extern int parse_format( char* format )
 				                        field_size, 
 				                        right_justify, 
 				                        suffix );
+			else if (field[0] == 'Q')
+				 job_format_add_priority_long( params.format_list,
+							field_size,
+							right_justify,
+							suffix );
 			else if (field[0] == 'r')
 				job_format_add_reason( params.format_list,
 							field_size,
diff --git a/src/squeue/print.c b/src/squeue/print.c
index c96ad8066abd3d4f8322aaa94dbaf2de3ef43198..0225f2ca31608812a36f2d6ee9b416c0cfd829ca 100644
--- a/src/squeue/print.c
+++ b/src/squeue/print.c
@@ -1,8 +1,8 @@
 /*****************************************************************************\
  *  print.c - squeue print job functions
- *  $Id$
  *****************************************************************************
- *  Copyright (C) 2002 The Regents of the University of California.
+ *  Copyright (C) 2002-2007 The Regents of the University of California.
+ *  Copyright (C) 2008 Lawrence Livermore National Security.
  *  Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER).
  *  Written by Joey Ekstrom <ekstrom1@llnl.gov>, 
  *             Morris Jette <jette1@llnl.gov>, et. al.
@@ -525,6 +525,20 @@ int _print_job_priority(job_info_t * job, int width, bool right, char* suffix)
 	return SLURM_SUCCESS;
 }
 
+int _print_job_priority_long(job_info_t * job, int width, bool right, char* suffix)
+{
+	char temp[FORMAT_STRING_SIZE];
+	if (job == NULL)	/* Print the Header instead */
+		_print_str("PRIORITY", width, right, true);
+	else {
+		sprintf(temp, "%u", job->priority);
+		_print_str(temp, width, right, true);
+	}
+	if (suffix)
+		printf("%s", suffix);
+	return SLURM_SUCCESS;
+}
+
 int _print_job_nodes(job_info_t * job, int width, bool right, char* suffix)
 {
 	if (job == NULL) {       /* Print the Header instead */
diff --git a/src/squeue/print.h b/src/squeue/print.h
index 9b2907d007f6136e68289592f8edaa45785bbede..a8181aae615bccb7f309c948dfa77809735eebb3 100644
--- a/src/squeue/print.h
+++ b/src/squeue/print.h
@@ -115,6 +115,8 @@ int job_format_add_function(List list, int width, bool right_justify,
 	job_format_add_function(list,wid,right,suffix,_print_job_time_end)
 #define job_format_add_priority(list,wid,right,suffix) \
 	job_format_add_function(list,wid,right,suffix,_print_job_priority)
+#define job_format_add_priority_long(list,wid,right,suffix) \
+	job_format_add_function(list,wid,right,suffix,_print_job_priority_long)
 #define job_format_add_nodes(list,wid,right,suffix) \
 	job_format_add_function(list,wid,right,suffix,_print_job_nodes)
 #define job_format_add_node_inx(list,wid,right,suffix) \
@@ -203,6 +205,8 @@ int _print_job_time_end(job_info_t * job, int width, bool right_justify,
 			char* suffix);
 int _print_job_priority(job_info_t * job, int width, bool right_justify, 
 			char* suffix);
+int _print_job_priority_long(job_info_t * job, int width, bool right_justify,
+			char* suffix);
 int _print_job_nodes(job_info_t * job, int width, bool right_justify, 
 			char* suffix);
 int _print_job_node_inx(job_info_t * job, int width, bool right_justify,