Issue persists whether using Chrome or Firefox. Ran both browsers with extensions disabled and anti-virus protection disabled when testing. Cleared cache before testing. Bug Report Description In the text editor in any Journal document, tables have problems with columns. If I put the cursor in a column and try to delete the column, nothing happens. If I try to add a column either to left or right, it adds a column somewhere wrong, usually too many columns to the left. Sometimes when I'm in one table and choose to add or delete a row it adds or deletes the wrong row--even sometimes in a different table! Steps to reproduce Open any Roll20 character, handout, or token. If a character or handout, click Edit. If a token, make sure you're on the Basic tab. Click in a text field, then click the table button. Click Insert. Enter any number of rows and columns, then click Insert. Click inside a table column. Optionally enter any text in the cell; it doesn't matter. Click the Table button. Click Delete Column. Column is not deleted. Computer Settings Google Chrome 48.0.2564.116 m Mozilla Firefox 44.0.2 Windows 7 Professional x64 (Problem also experienced on Windows 10 x64) Javascript enabled Anti-virus disabled: ESET Endpoint Antivirus 6.2.2033.0 No browser extensions or add-ons enabled Console Log for Google Chrome app.roll20.net/:12 Refused to execute inline script because it violates the following Content Security Policy directive: "script-src 'self' 'unsafe-eval' https://*.googlesyndication.com https://*.doubleclick.net https://*.googlesyndication.com <a href="https://www.googletagservices.com" rel="nofollow">https://www.googletagservices.com</a> https://*.googlesyndication.com <a href="https://www.google-analytics.com" rel="nofollow">https://www.google-analytics.com</a> https://*.googlesyndication.com <a href="https://d3clqjduf2gvxg.cloudfront.net" rel="nofollow">https://d3clqjduf2gvxg.cloudfront.net</a> https://*.googlesyndication.com https://*.firebaseio.com https://*.googlesyndication.com https://*.opentok.com https://*.googlesyndication.com <a href="http://www.google-analytics.com" rel="nofollow">http://www.google-analytics.com</a>". Either the 'unsafe-inline' keyword, a hash ('sha256-5l5u2v1YstHlJ24RjCdURdIfbj/MuzSeLxNKl4tblqE='), or a nonce ('nonce-...') is required to enable inline execution. app.roll20.net/:13 Refused to execute inline script because it violates the following Content Security Policy directive: "script-src 'self' 'unsafe-eval' https://*.googlesyndication.com https://*.doubleclick.net https://*.googlesyndication.com <a href="https://www.googletagservices.com" rel="nofollow">https://www.googletagservices.com</a> https://*.googlesyndication.com <a href="https://www.google-analytics.com" rel="nofollow">https://www.google-analytics.com</a> https://*.googlesyndication.com <a href="https://d3clqjduf2gvxg.cloudfront.net" rel="nofollow">https://d3clqjduf2gvxg.cloudfront.net</a> https://*.googlesyndication.com https://*.firebaseio.com https://*.googlesyndication.com https://*.opentok.com https://*.googlesyndication.com <a href="http://www.google-analytics.com" rel="nofollow">http://www.google-analytics.com</a>". Either the 'unsafe-inline' keyword, a hash ('sha256-Mtw/69yJdwuHQ1vHk7Vhd4MO76nzwQ80TB5ohZIV0iw='), or a nonce ('nonce-...') is required to enable inline execution. app.js?1456935446:29 70 app.js?1456935446:30 TOUCH SUPPORTED: false app.js?1456935446:30 USING WEBGL ACCELERATION... app.js?1456935446:30 WEBGL STARTUP SUCCESS app.js?1456935446:25 select app.js?1456935446:25 Switch mode to select app.js?1456935446:40 Initializing new dice engine with randomness... app.js?1456935446:40 Using random entropy app.js?1456935446:43 Compiling sheet... app.js?1456935446:43 Found rolltemplate: continuum app.js?1456935446:43 Finding sheet rolls... app.js?1456935446:45 window resize app.js?1456935446:30 Final set zoom! app.js?1456935446:30 UPDATE GL SIZE! app.js?1456935446:30 Final set zoom! tutorial_tips.js:7 tuts loaded app.roll20.net/:1 Mixed Content: The page at '<a href="https://app.roll20.net/editor/" rel="nofollow">https://app.roll20.net/editor/</a>' was loaded over HTTPS, but requested an insecure image '<a href="http://imgsrv.roll20.net/?src=www.aetherco.com/continuum/imgi/continuulogo110.gif" rel="nofollow">http://imgsrv.roll20.net/?src=www.aetherco.com/continuum/imgi/continuulogo110.gif</a>'. This content should also be served over HTTPS. app.js?1456935446:36 Final page load. app.js?1456935446:45 Refresh jukebox List! app.js?1456935446:35 Auth'ed. app.js?1456935446:35 Go post auth! app.js?1456935446:36 Scan for new plays! app.js?1456935446:35 initial setup app.js?1456935446:35 Got players value... app.js?1456935446:35 joining game... 3app.js?1456935446:33 Full load page! app.js?1456935446:35 We have 3 pages app.js?1456935446:34 Player -KB4FN8Y49HSraeziuAJ is offline... app.js?1456935446:34 Global Volume: 100=1 app.js?1456935446:34 Player -KBfSa8hMAvJb9BMvYqV is offline... app.js?1456935446:34 Player -KBgBtzuYIDCOd6Zby01 is offline... app.js?1456935446:34 Player -KBhiTDBAjd2CihFFbxw is offline... app.js?1456935446:34 Player -KBjpEykj-XLVEwxTKZi is offline... app.js?1456935446:34 Player -KBjpRbj5oEKaJMe0-yh is offline... app.js?1456935446:35 Deferred finish joining... app.js?1456935446:29 Firebase Online app.js?1456935446:38 refershing page listings! app.js?1456935446:43 Refresh Journal List! app.js?1456935446:43 Search took 21ms app.js?1456935446:35 handle page changes app.js?1456935446:35 false app.js?1456935446:35 init active page! app.js?1456935446:33 activate page! app.js?1456935446:33 FULLY ACTIVATE VIEWS FOR PAGE. app.js?1456935446:36 Scan for new plays! app.js?1456935446:32 Do refresh link cache! app.js?1456935446:43 Refresh Journal List! app.js?1456935446:43 Search took 122ms app.js?1456935446:33 Graphics: 9 app.js?1456935446:33 Paths: 4 app.js?1456935446:42 initiatlizing video chat app.js?1456935446:42 Connecting to WebRTC app.js?1456935446:45 Refresh jukebox List! app.js?1456935446:38 refershing page listings! app.js?1456935446:33 Reorder by ZORDER <a href="https://s3.amazonaws.com/files.d20.io/images/16804" rel="nofollow">https://s3.amazonaws.com/files.d20.io/images/16804</a>... Failed to load resource: the server responded with a status of 403 (Forbidden) app.js?1456935446:32 Swapping <a href="https://s3.amazonaws.com/files.d20.io/images/1675" rel="nofollow">https://s3.amazonaws.com/files.d20.io/images/1675</a>... to <a href="https://s3.amazonaws.com/files.d20.io/images/1675" rel="nofollow">https://s3.amazonaws.com/files.d20.io/images/1675</a>... app.js?1456935446:32 Swapping <a href="https://s3.amazonaws.com/files.d20.io/images/1652" rel="nofollow">https://s3.amazonaws.com/files.d20.io/images/1652</a>... to <a href="https://s3.amazonaws.com/files.d20.io/images/1652" rel="nofollow">https://s3.amazonaws.com/files.d20.io/images/1652</a>... app.js?1456935446:32 Swapping <a href="https://s3.amazonaws.com/files.d20.io/images/1661" rel="nofollow">https://s3.amazonaws.com/files.d20.io/images/1661</a>... to <a href="https://s3.amazonaws.com/files.d20.io/images/1661" rel="nofollow">https://s3.amazonaws.com/files.d20.io/images/1661</a>... app.js?1456935446:32 Swapping <a href="https://s3.amazonaws.com/files.d20.io/images/1675" rel="nofollow">https://s3.amazonaws.com/files.d20.io/images/1675</a>... to <a href="https://s3.amazonaws.com/files.d20.io/images/1675" rel="nofollow">https://s3.amazonaws.com/files.d20.io/images/1675</a>... app.js?1456935446:32 Swapping <a href="https://s3.amazonaws.com/files.d20.io/images/1676" rel="nofollow">https://s3.amazonaws.com/files.d20.io/images/1676</a>... to <a href="https://s3.amazonaws.com/files.d20.io/images/1676" rel="nofollow">https://s3.amazonaws.com/files.d20.io/images/1676</a>... app.js?1456935446:32 Swapping <a href="https://s3.amazonaws.com/files.d20.io/images/1676" rel="nofollow">https://s3.amazonaws.com/files.d20.io/images/1676</a>... to <a href="https://s3.amazonaws.com/files.d20.io/images/1676" rel="nofollow">https://s3.amazonaws.com/files.d20.io/images/1676</a>... app.js?1456935446:32 Swapping <a href="https://s3.amazonaws.com/files.d20.io/images/1680" rel="nofollow">https://s3.amazonaws.com/files.d20.io/images/1680</a>... to <a href="https://s3.amazonaws.com/files.d20.io/images/1680" rel="nofollow">https://s3.amazonaws.com/files.d20.io/images/1680</a>... app.js?1456935446:29 Error loading image, probably due to cors. Trying once without CORS for <a href="https://s3.amazonaws.com/files.d20.io/images/1680" rel="nofollow">https://s3.amazonaws.com/files.d20.io/images/1680</a>... app.js?1456935446:32 Swapping <a href="https://s3.amazonaws.com/files.d20.io/images/1649" rel="nofollow">https://s3.amazonaws.com/files.d20.io/images/1649</a>... to <a href="https://s3.amazonaws.com/files.d20.io/images/1649" rel="nofollow">https://s3.amazonaws.com/files.d20.io/images/1649</a>... app.js?1456935446:32 setting src <a href="https://s3.amazonaws.com/files.d20.io/images/16804" rel="nofollow">https://s3.amazonaws.com/files.d20.io/images/16804</a>... Failed to load resource: the server responded with a status of 403 (Forbidden) 5app.js:32 setting src app.js:33 Reorder by ZORDER app.js:28 Cols: 2 Rows: 3 app.js:28 Took 1ms to generate cache. 2app.js:32 setting src app.js:28 Cols: 2 Rows: 2 app.js:28 Took 0ms to generate cache. app.js:42 Connected to session app.js:42 Someone just connected. app.js:42 It's us? base.js:4 'Range.detach' is now a no-op, as per DOM (<a href="https://dom.spec.whatwg.org/#dom-range-detach" rel="nofollow">https://dom.spec.whatwg.org/#dom-range-detach</a>). 2base.js:4 Uncaught TypeError: Cannot read property 'cellIndex' of undefined app.js:45 window resize app.js:30 Final set zoom! app.js:30 UPDATE GL SIZE! app.js:30 Final set zoom! Console Log for Mozilla Firefox mutating the [[Prototype]] of an object will cause your code to run very slowly; instead create the object with the correct initial [[Prototype]] value using Object.create opentok.min.js:52:7279 70 app.js:29:19079 TOUCH SUPPORTED: false app.js:30:11283 select app.js:25:2160 Switch mode to select app.js:25:4006 Initializing new dice engine with randomness... app.js:40:23922 Using random entropy app.js:40:23999 Compiling sheet... app.js:43:22742 Found rolltemplate: continuum app.js:43:23025 Loading mixed (insecure) display content "<a href="http://imgsrv.roll20.net/?src=www.aetherco.com/continuum/imgi/continuulogo110.gif" rel="nofollow">http://imgsrv.roll20.net/?src=www.aetherco.com/continuum/imgi/continuulogo110.gif</a>" on a secure page[Learn More] jquery.min.js:2:70985 Finding sheet rolls... app.js:43:23989 Use of attributes' nodeValue attribute is deprecated. Use value instead. app.js:43:25986 window resize app.js:45:4725 Final set zoom! app.js:30:25405 tuts loaded tutorial_tips.js:7:2 Final page load. app.js:36:10927 Refresh jukebox List! app.js:45:9217 Scan for new plays! app.js:36:8423 Auth'ed. app.js:35:23932 Go post auth! app.js:35:24129 initial setup app.js:35:24274 Got players value... app.js:35:24516 joining game... app.js:35:31024 Full load page! app.js:33:14013 We have 3 pages app.js:35:25319 Player -KB4FN8Y49HSraeziuAJ is offline... app.js:34:5935 Global Volume: 100=1 app.js:34:13265 Player -KBfSa8hMAvJb9BMvYqV is offline... app.js:34:5935 Player -KBgBtzuYIDCOd6Zby01 is offline... app.js:34:5935 Player -KBhiTDBAjd2CihFFbxw is offline... app.js:34:5935 Player -KBjpEykj-XLVEwxTKZi is offline... app.js:34:5935 Player -KBjpRbj5oEKaJMe0-yh is offline... app.js:34:5935 Deferred finish joining... app.js:35:31114 Firebase Online app.js:29:20385 refershing page listings! app.js:38:30199 Refresh Journal List! app.js:43:6586 Search took 35ms app.js:43:5438 handle page changes app.js:35:25859 false app.js:35:25940 Use of getPreventDefault() is deprecated. Use defaultPrevented instead. jquery.min.js:2:40278 init active page! app.js:35:30025 activate page! app.js:33:16175 FULLY ACTIVATE VIEWS FOR PAGE. app.js:33:16407 Scan for new plays! app.js:36:8423 Graphics: 9 app.js:33:15354 Paths: 4 app.js:33:15550 refershing page listings! app.js:38:30199 initiatlizing video chat app.js:42:25157 Connecting to WebRTC app.js:42:25675 Refresh jukebox List! app.js:45:9217 Do refresh link cache! app.js:32:6623 Refresh Journal List! app.js:43:6586 Search took 168ms app.js:43:5438 Reorder by ZORDER app.js:33:19019 "Error loading image, probably due to cors. Trying once without CORS for <a href="https://s3.amazonaws.com/files.d20.io/images/16804565/AfgSPzXydh3ldLqVTBk0rA/max.gif?1456936008" rel="nofollow">https://s3.amazonaws.com/files.d20.io/images/16804565/AfgSPzXydh3ldLqVTBk0rA/max.gif?1456936008</a>" app.js:29:120 "Swapping <a href="https://s3.amazonaws.com/files.d20.io/images/16804581/D4RQSpzKzDW77SwWQShyKA/max.png?14569360825" rel="nofollow">https://s3.amazonaws.com/files.d20.io/images/16804581/D4RQSpzKzDW77SwWQShyKA/max.png?14569360825</a> to <a href="https://s3.amazonaws.com/files.d20.io/images/16804581/D4RQSpzKzDW77SwWQShyKA/thumb.png?14569360825" rel="nofollow">https://s3.amazonaws.com/files.d20.io/images/16804581/D4RQSpzKzDW77SwWQShyKA/thumb.png?14569360825</a>" app.js:32:30287 "Swapping <a href="https://s3.amazonaws.com/files.d20.io/images/16610643/EXnKXfrqtIUDmuSJA0AAiQ/med.png?14564255075" rel="nofollow">https://s3.amazonaws.com/files.d20.io/images/16610643/EXnKXfrqtIUDmuSJA0AAiQ/med.png?14564255075</a> to <a href="https://s3.amazonaws.com/files.d20.io/images/16610643/EXnKXfrqtIUDmuSJA0AAiQ/max.png?14564255075" rel="nofollow">https://s3.amazonaws.com/files.d20.io/images/16610643/EXnKXfrqtIUDmuSJA0AAiQ/max.png?14564255075</a>" app.js:32:30287 "Swapping <a href="https://s3.amazonaws.com/files.d20.io/images/16755140/1k-kbTORa6ti5a9c0D2sUw/med.jpg?14567962655" rel="nofollow">https://s3.amazonaws.com/files.d20.io/images/16755140/1k-kbTORa6ti5a9c0D2sUw/med.jpg?14567962655</a> to <a href="https://s3.amazonaws.com/files.d20.io/images/16755140/1k-kbTORa6ti5a9c0D2sUw/thumb.jpg?14567962655" rel="nofollow">https://s3.amazonaws.com/files.d20.io/images/16755140/1k-kbTORa6ti5a9c0D2sUw/thumb.jpg?14567962655</a>" app.js:32:30287 "Swapping <a href="https://s3.amazonaws.com/files.d20.io/images/16769477/OklBaVm9MC0rOTGbl2pTWg/med.jpg?14567991785" rel="nofollow">https://s3.amazonaws.com/files.d20.io/images/16769477/OklBaVm9MC0rOTGbl2pTWg/med.jpg?14567991785</a> to <a href="https://s3.amazonaws.com/files.d20.io/images/16769477/OklBaVm9MC0rOTGbl2pTWg/thumb.jpg?14567991785" rel="nofollow">https://s3.amazonaws.com/files.d20.io/images/16769477/OklBaVm9MC0rOTGbl2pTWg/thumb.jpg?14567991785</a>" app.js:32:30287 "Swapping <a href="https://s3.amazonaws.com/files.d20.io/images/16498747/o8piU_Xj52sJXvjNi5_nsg/max.png?14560823125" rel="nofollow">https://s3.amazonaws.com/files.d20.io/images/16498747/o8piU_Xj52sJXvjNi5_nsg/max.png?14560823125</a> to <a href="https://s3.amazonaws.com/files.d20.io/images/16498747/o8piU_Xj52sJXvjNi5_nsg/thumb.png?14560823125" rel="nofollow">https://s3.amazonaws.com/files.d20.io/images/16498747/o8piU_Xj52sJXvjNi5_nsg/thumb.png?14560823125</a>" app.js:32:30287 "Swapping <a href="https://s3.amazonaws.com/files.d20.io/images/16522821/X3poHtqpDK3-M5vSZSV87Q/med.jpg?14561530715" rel="nofollow">https://s3.amazonaws.com/files.d20.io/images/16522821/X3poHtqpDK3-M5vSZSV87Q/med.jpg?14561530715</a> to <a href="https://s3.amazonaws.com/files.d20.io/images/16522821/X3poHtqpDK3-M5vSZSV87Q/original.jpg?14561530715" rel="nofollow">https://s3.amazonaws.com/files.d20.io/images/16522821/X3poHtqpDK3-M5vSZSV87Q/original.jpg?14561530715</a>" app.js:32:30287 "Swapping <a href="https://s3.amazonaws.com/files.d20.io/images/16757545/1Y6CturzmxV9_yv76qHfxQ/med.jpg?14567738425" rel="nofollow">https://s3.amazonaws.com/files.d20.io/images/16757545/1Y6CturzmxV9_yv76qHfxQ/med.jpg?14567738425</a> to <a href="https://s3.amazonaws.com/files.d20.io/images/16757545/1Y6CturzmxV9_yv76qHfxQ/thumb.jpg?14567738425" rel="nofollow">https://s3.amazonaws.com/files.d20.io/images/16757545/1Y6CturzmxV9_yv76qHfxQ/thumb.jpg?14567738425</a>" app.js:32:30287 "Swapping <a href="https://s3.amazonaws.com/files.d20.io/images/16766068/YeVueti81f95muvbTMEVkQ/med.jpg?14567926245" rel="nofollow">https://s3.amazonaws.com/files.d20.io/images/16766068/YeVueti81f95muvbTMEVkQ/med.jpg?14567926245</a> to <a href="https://s3.amazonaws.com/files.d20.io/images/16766068/YeVueti81f95muvbTMEVkQ/thumb.jpg?14567926245" rel="nofollow">https://s3.amazonaws.com/files.d20.io/images/16766068/YeVueti81f95muvbTMEVkQ/thumb.jpg?14567926245</a>" app.js:32:30287 Reorder by ZORDER app.js:33:19019 setting src app.js:32:30448 Cols: 2 Rows: 2 app.js:28:27632 Took 175ms to generate cache. app.js:28:28308 setting src app.js:32:30448 Cols: 2 Rows: 3 app.js:28:27632 Took 134ms to generate cache. app.js:28:28308 setting src app.js:32:30448 Connected to session app.js:42:27269 Someone just connected. app.js:42:28577 It's us? app.js:42:28679 TypeError: i.get(...) is undefined base.js:4:22833 window resize app.js:45:4725 Final set zoom! app.js:30:25405