Index: Classes/Service/Stages.php
===================================================================
--- Classes/Service/Stages.php	(revision 3302)
+++ Classes/Service/Stages.php	(revision )
@@ -165,10 +165,10 @@
 				// go through custom stages records
 			foreach ($workspaceStageRecs as $workspaceStageRec) {
 					// check if the user has permissions to the custom stage
-				if ($GLOBALS['BE_USER']->workspaceCheckStageForCurrent($this->encodeStageUid($workspaceStageRec['uid']))) {
+				if ($GLOBALS['BE_USER']->workspaceCheckStageForCurrent($workspaceStageRec['uid'])) {
 						// yes, so add to return array
 					$stagesForWSUserData[] = array(
-						'uid' => $this->encodeStageUid($workspaceStageRec['uid']),
+						'uid' => $workspaceStageRec['uid'],
 						'title' => $GLOBALS['LANG']->sL($this->pathToLocallang . ':actionSendToStage') . ' ' . $workspaceStageRec['title']);
 				} else if ($workspaceStageRec['uid'] == self::STAGE_PUBLISH_EXECUTE_ID) {
 						if ($GLOBALS['BE_USER']->workspacePublishAccess($this->getWorkspaceId())) {
@@ -191,27 +191,6 @@
 	}
 
 	/**
-	 * converts from versioning stage id to stage record UID
-	 *
-	 * @return int UID of the database record
-	 */
-	public function resolveStageUid($ver_stage) {
-		return $ver_stage;
-		//return $ver_stage - $this->raiseStageIdAmount;
-	}
-
-	/**
-	 * converts from stage record UID to versioning stage id
-	 *
-	 * @param int UID of the stage database record
-	 * @return int versioning stage id
-	 */
-	public function encodeStageUid($stage_uid) {
-		return $stage_uid;
-		//return $stage_uid + $this->raiseStageIdAmount;
-	}
-
-	/**
 	 * Gets the title of a stage.
 	 *
 	 * @param integer $ver_stage
@@ -250,7 +229,7 @@
 	 * @return array
 	 */
 	public function getStageRecord($stageid) {
-		return t3lib_BEfunc::getRecord('sys_workspace_stage', $this->resolveStageUid($stageid));
+		return t3lib_BEfunc::getRecord('sys_workspace_stage', $stageid);
 	}
 
 	/**
@@ -274,7 +253,7 @@
 			reset($workspaceStageRecs);
 			while (!is_null($workspaceStageRecKey = key($workspaceStageRecs))) {
 				$workspaceStageRec = current($workspaceStageRecs);
-				if ($workspaceStageRec['uid'] == $this->resolveStageUid($stageId)) {
+				if ($workspaceStageRec['uid'] == $stageId) {
 					$nextStage = next($workspaceStageRecs);
 					break;
 				}
@@ -345,7 +324,7 @@
 			end($workspaceStageRecs);
 			while (!is_null($workspaceStageRecKey = key($workspaceStageRecs))) {
 				$workspaceStageRec = current($workspaceStageRecs);
-				if ($workspaceStageRec['uid'] == $this->resolveStageUid($stageid)) {
+				if ($workspaceStageRec['uid'] == $stageid) {
 					$prevStage = prev($workspaceStageRecs);
 					break;
 				}
@@ -558,10 +537,6 @@
 			throw new InvalidArgumentException($GLOBALS['LANG']->sL('LLL:EXT:workspaces/Resources/Private/Language/locallang.xml:error.stageId.integer'));
 		}
 
-		if ($stageId != self::STAGE_PUBLISH_ID && $stageId != self::STAGE_EDIT_ID) {
-			$stageId = $this->resolveStageUid($stageId);
-		}
-
 		$workspaceStage = t3lib_BEfunc::getRecord(self::TABLE_STAGE, $stageId);
 
 		if (is_array($workspaceStage) && isset($workspaceStage[$property])) {
Index: ChangeLog
===================================================================
--- ChangeLog	(revision 3430)
+++ ChangeLog	(revision )
@@ -1,3 +1,7 @@
+2010-12-19  Sonja Scholz <ss@cabag.ch>
+
+	* Fixed bug: #11153: Determine whether Tx_Workspaces_Service_Stages::encodeStageUid and resolveStageUid are required
+
 2010-12-19  Tolleiv Nietsch <typo3@tolleiv.de>
 
 	* Followup-to #9819: Workspace preview window - "live" and "workspace" buttons are clickable now
Index: Classes/Service/Tcemain.php
===================================================================
--- Classes/Service/Tcemain.php	(revision 3302)
+++ Classes/Service/Tcemain.php	(revision )
@@ -64,16 +64,12 @@
 	 * @return void
 	 */
 	protected function resetStageOfElements($stageId) {
-		$service = t3lib_div::makeInstance('Tx_Workspaces_Service_Stages');
-			// @todo: remove the encode/decode functionality
-		$pseudoStageId = $service->encodeStageUid($stageId);
-
 		$fields = array('t3ver_stage' => Tx_Workspaces_Service_Stages::STAGE_EDIT_ID);
 
 		foreach ($this->getTcaTables() as $tcaTable) {
 			if (t3lib_BEfunc::isTableWorkspaceEnabled($tcaTable)) {
 
-				$where = 't3ver_stage = ' . intval($pseudoStageId);
+				$where = 't3ver_stage = ' . intval($stageId);
 				$where .= ' AND t3ver_wsid > 0 AND pid=-1';
 				$where .= t3lib_BEfunc::deleteClause($tcaTable);
 
