diff --git a/lib/jqueue.py b/lib/jqueue.py
index 5e639950e54ae36b87220e89b3090772c22ab6c4..5bde17d2887a5abf9d6ae382ab9e412e294ffd82 100644
--- a/lib/jqueue.py
+++ b/lib/jqueue.py
@@ -517,9 +517,7 @@ class _QueuedJob(object):
 
         changed = True
 
-        # Note: this also changes the on-disk priority ("op.priority" is only in
-        # memory)
-        op.input.priority = priority
+        # Set new priority (doesn't modify opcode input)
         op.priority = priority
 
       if changed:
diff --git a/test/ganeti.jqueue_unittest.py b/test/ganeti.jqueue_unittest.py
index 34cb71b895e5c20db3761cc77bc744b0445f3e30..7b7567e54d46dbc1a17b0392e607fc005f7ef739 100755
--- a/test/ganeti.jqueue_unittest.py
+++ b/test/ganeti.jqueue_unittest.py
@@ -398,7 +398,8 @@ class TestQueuedJob(unittest.TestCase):
     result = job.ChangePriority(-10)
     self.assertEqual(job.CalcPriority(), -10)
     self.assertTrue(compat.all(op.priority == -10 for op in job.ops))
-    self.assertTrue(compat.all(op.input.priority == -10 for op in job.ops))
+    self.assertFalse(compat.any(hasattr(op.input, "priority")
+                                for op in job.ops))
     self.assertEqual(result,
                      (True, ("Priorities of pending opcodes for job 24984 have"
                              " been changed to -10")))
@@ -468,8 +469,8 @@ class TestQueuedJob(unittest.TestCase):
     self.assertEqual(job.CalcPriority(), constants.OP_PRIO_DEFAULT)
     self.assertEqual(map(operator.attrgetter("priority"), job.ops),
                      [constants.OP_PRIO_DEFAULT, 7, 7, 7])
-    self.assertEqual([getattr(op.input, "priority", None) for op in job.ops],
-                     [None, 7, 7, 7])
+    self.assertFalse(compat.any(hasattr(op.input, "priority")
+                                for op in job.ops))
     self.assertEqual(map(operator.attrgetter("status"), job.ops), [
       constants.OP_STATUS_RUNNING,
       constants.OP_STATUS_QUEUED,
@@ -520,8 +521,8 @@ class TestQueuedJob(unittest.TestCase):
     self.assertEqual(map(operator.attrgetter("priority"), job.ops),
                      [constants.OP_PRIO_DEFAULT, constants.OP_PRIO_DEFAULT,
                       -19, -19])
-    self.assertEqual([getattr(op.input, "priority", None) for op in job.ops],
-                     [None, None, -19, -19])
+    self.assertFalse(compat.any(hasattr(op.input, "priority")
+                                for op in job.ops))
     self.assertEqual(map(operator.attrgetter("status"), job.ops), [
       constants.OP_STATUS_SUCCESS,
       constants.OP_STATUS_RUNNING,
@@ -2221,6 +2222,10 @@ class TestJobProcessorTimeouts(unittest.TestCase, _JobProcessorTestUtils):
       result = proc(_nextop_fn=self._NextOpcode)
       assert self.curop is not None
 
+      # Input priority should never be set or modified
+      self.assertFalse(compat.any(hasattr(op.input, "priority")
+                                  for op in job.ops))
+
       if result == jqueue._JobProcessor.FINISHED or self.gave_lock:
         # Got lock and/or job is done, result must've been written
         self.assertFalse(job.cur_opctx)