diff --git a/e107_core/bbcodes/bb_img.php b/e107_core/bbcodes/bb_img.php
index 1a603fbc4..69ce7d5f8 100644
--- a/e107_core/bbcodes/bb_img.php
+++ b/e107_core/bbcodes/bb_img.php
@@ -70,7 +70,7 @@ class bb_img extends e_bb_base
     //    $resize = "&w=".$w; // Always resize - otherwise the thumbnailer returns nothing.
     //    $parmStr = implode(" ",$p);
 
-   //     print_a($imgParms);
+
 
    //     $url = e107::getParser()->thumbUrl($code_text, $resize);
 
@@ -132,8 +132,10 @@ class bb_img extends e_bb_base
 		}
 
 	    $imgParms['title'] = $imgParms['alt'] ;
-        
-        $imgParms['class']      = "img-rounded rounded bbcode ".e107::getBB()->getClass('img');;  //  This will be overridden if a new class is specified
+
+	    $class = !empty($imgParms['class']) ? ' '.$imgParms['class'] : '';
+
+        $imgParms['class']      = "img-rounded rounded bbcode ".e107::getBB()->getClass('img').$class;  //  This will be overridden if a new class is specified
         
         if($mode == 'string')
 		{
@@ -165,7 +167,7 @@ class bb_img extends e_bb_base
         }
         
      
-    
+    var_dump($code_text);
         
 		if (preg_match("#\.php\?.*#",$code_text)){return "";} //XXX Breaks MediaManager Images, so do it after mediaManager check. 
 		
diff --git a/e107_handlers/e_parse_class.php b/e107_handlers/e_parse_class.php
index 15a0111c3..950cf207c 100644
--- a/e107_handlers/e_parse_class.php
+++ b/e107_handlers/e_parse_class.php
@@ -1479,6 +1479,34 @@ class e_parse extends e_parser
 
 	}
 
+
+
+	function parseBBCodes($text, $postID)
+	{
+		if (!is_object($this->e_bb))
+		{
+			require_once(e_HANDLER.'bbcode_handler.php');
+			$this->e_bb = new e_bbcode;
+		}
+
+
+		$text = $this->e_bb->parseBBCodes($text, $postID);
+
+		return $text;
+	}
+
+
+
+
+
+
+
+
+
+
+
+
+
 	/**
 	 * Converts the text (presumably retrieved from the database) for HTML output.
 	 *
@@ -1687,10 +1715,14 @@ class e_parse extends e_parser
 							$html_start = "<!-- bbcode-html-start -->"; // markers for html-to-bbcode replacement. 
 							$html_end	= "<!-- bbcode-html-end -->";
 							$full_text = str_replace(array("[html]","[/html]"), "",$code_text); // quick fix.. security issue?
-							$full_text =$this->replaceConstants($full_text,'abs');
+
+							$full_text = $this->parseBBCodes($full_text, $postID); // parse any embedded bbcodes eg. [img]
+							$full_text = $this->replaceConstants($full_text,'abs'); // parse any other paths using {e_....
 							$full_text = $html_start.$full_text.$html_end;
 							$full_text = $this->parseBBTags($full_text); // strip <bbcode> tags. 
 							$opts['nobreak'] = true;
+							$parseBB = false; // prevent further bbcode processing.
+
 
 							break;
 
@@ -2764,6 +2796,8 @@ class e_parse extends e_parser
 
 			$staticFile = $this->thumbCacheFile($url, $opts);
 
+
+
 			if(!empty($staticFile) && is_readable(e_CACHE_IMAGE.$staticFile))
 			{
 				$staticImg = $this->staticUrl(e_CACHE_IMAGE_ABS.$staticFile);
@@ -2771,6 +2805,8 @@ class e_parse extends e_parser
 				return $staticImg;
 			}
 
+		//	echo "<br />static-not-found: ".$staticFile;
+
 			$options['nosef'] = true;
 			$options['x'] = null;
 			// file_put_contents(e_LOG."thumb.log", "\n++++++++++++++++++++++++++++++++++\n\n", FILE_APPEND);
diff --git a/e107_plugins/tinymce4/plugins/e107/parser.php b/e107_plugins/tinymce4/plugins/e107/parser.php
index 45bdd396e..123ed6bd4 100644
--- a/e107_plugins/tinymce4/plugins/e107/parser.php
+++ b/e107_plugins/tinymce4/plugins/e107/parser.php
@@ -194,17 +194,6 @@ TEMPL;
 		{
 
 			$content = trim($content);
-
-		//	$srch 		= array('src="'.e_HTTP.'thumb.php?','src="/{e_MEDIA_IMAGE}');
-		//	$repl 		= array('src="{e_BASE}thumb.php?','src="{e_BASE}thumb.php?src=e_MEDIA_IMAGE/');
-		//	$content 	= str_replace($srch, $repl, $content);
-
-			// resize the thumbnail to match wysiwyg width/height.
-
-			//    $psrch 		= '/<img[^>]*src="{e_BASE}thumb.php\?src=([\S]*)w=([\d]*)&amp;h=([\d]*)"(.*)width="([\d]*)" height="([\d]*)"/i';
-			//    $prepl 		= '<img src="{e_BASE}thumb.php?src=$1w=$5&amp;h=$6"$4width="$5" height="$6" ';
-
-			//	$content 	= preg_replace($psrch, $prepl, $content);
 			$content = $this->updateImg($content);
 		//	$content = $tp->parseBBTags($content,true); // replace html with bbcode equivalent
 
@@ -307,7 +296,7 @@ TEMPL;
 
 
 			$regexp = '#(<img[^>]*src="'.str_replace($srch, $repl, $img['src']).'"[^>]*>)#';
-
+/*
 			$width 	= vartrue($img['width']) 	? ' width="'.$img['width'].'"' : '';
 			$height = vartrue($img['height'])	? ' height="'.$img['height'].'"' : '';
 			$style 	= vartrue($img['style'])	? ' style="'.$img['style'].'"' : '';
@@ -315,6 +304,8 @@ TEMPL;
 			$alt 	= vartrue($img['alt'])		? ' alt="'.$img['alt'].'"' : '';
 			$title 	= vartrue($img['title'])	? ' title="'.$img['title'].'"' : '';
 			$srcset = vartrue($img['srcset'])   ? 'srcset="'.$img['srcset'].'"' : '';
+			*/
+
 
 			$qr = $this->thumbUrlDecode($img['src']);
 
@@ -326,9 +317,43 @@ TEMPL;
 
 			$qr['ebase'] = true;
 
-			$src = e107::getParser()->thumbUrl($qr['src'],$qr);
+		//	$src = e107::getParser()->thumbUrl($qr['src'],$qr);
 
-			$replacement = '<img src="'.$src.'" '.$srcset.$style.$alt.$title.$class.$width.$height.' />';
+		//	$replacement = '<img src="'.$src.'" '.$srcset.$style.$alt.$title.$class.$width.$height.' />';
+
+			unset($img['src'],$img['srcset'],$img['@value'], $img['caption'], $img['alt']);
+
+			if(!empty($img['class']))
+			{
+				$tmp = explode(" ",$img['class']);
+				$cls = array();
+				foreach($tmp as $v)
+				{
+					if($v === 'img-rounded' || $v === 'rounded' || $v === 'bbcode' || $v === 'bbcode-img-news' || $v === 'bbcode-img')
+					{
+						continue;
+					}
+
+					$cls[] = $v;
+
+				}
+
+				if(empty($cls))
+				{
+					unset($img['class']);
+				}
+				else
+				{
+					$img['class'] = implode(" ",$cls);
+				}
+
+			}
+
+			$parms = !empty($img) ? ' '.str_replace('+', ' ', http_build_query($img,null, '&')) : "";
+
+			$code_text = str_replace(e107::getParser()->getUrlConstants('raw'), e107::getParser()->getUrlConstants('sc'), $qr['src']);
+
+			$replacement = '[img'.$parms.']'.$code_text.'[/img]';
 
 			$text = preg_replace($regexp, $replacement, $text);