Wealth-Lab Wiki

API ChartStyles Community Components Community Indicators IndexDefinitions Knowledge Base Misc Optimizers PosSizers Providers Standard Indicators TASC Traders Tips TASCIndicators Tutorial Videos Visualizers


Quick Search
Advanced Search »

This page provides a list of new and open issues.  Reference numbers are for internal tracking. High priority bugs with deferred low-priority ones in no particular order.


  • Preferences dialog can not be closed (applies to Wealth-Lab 6.8) Fixed in 6.9
  • When configuring the Preferences dialog for the first time after a clean install of 6.8, an ArgumentOutOfRange exception prevents from closing the dialog.
    • Workaround: select an item from the new Dividend Fundamental Item dropdown (Backtest Settings tab).

  • TASCIndicators can not be found (applies to Wealth-Lab Pro 6.9)
    • Workaround: resintall TASC Magazine Indicators library from the Extensions section
    • Workaround if version 2014.07 is installed: update using the Extension Manager

  • Installation of WLD 6.9 stops if Microsoft .NET 2.0 framework is not installed on PC (applied to Wealth-Lab Developer 6.8 and above)

  • (190249) Missing "Save" and "Save As" menu items (applies to Wealth-Lab 6.8 and higher)
  • "Save" and "Save As" choices are missing from the File menu.
    • Workaround: enable "Function toolbar" from the View menu.

  • Saved workspace restored incorrectly for users with multiple monitors (applies to Wealth-Lab 6.9)
    • Workaround: Save affected workspace to a new name, delete the old one.

  • (146) Application needs to support 120 DPI throughout - Deferred
    • Selecting the "Medium - 125%" option in Display (Windows Control Panel) causes some overlay and/or partial invisibility in various tools like Strategy Parameter box, compiler error message box, and many other parts of the interface.
    • Suggestion: revert to the standard "Smaller - 100%" text size.
    • Workaround: Set "Disable display scaling on high DPI settings" checkbox (in the Properties > Compatibility tab of Wealth-Lab's task bar icon): How to Make the Windows Desktop Work Well on High-DPI Displays and Fix Blurry Fonts
    • Workaround (?): customize the font size of a Windows GUI item on an individual basis: How to Change the Default Font on Windows 7
    • Workaround (?): if .NET Framework 4.6 or higher is installed, try editing the WealthLabPro.exe.config (or WealthLabDev.exe.config) file in the main folder under Program Files (requires elevated user rights) to activate EnableWindowsFormsHighDpiAutoResizing:
      • // below this line: <add key="ChunkDays90MinBars" value="360"/>
        // add this line:
        <add key="EnableWindowsFormsHighDpiAutoResizing" value="true" />
    • Workaround for Apple users only: in the Mac menu go to Actions (the Virtual Machine menu in older versions of Parallels Desktop) > Configure... > Hardware -> Video and..., then set "Resolution: Scaled" (not Retina).

  • (49880) Synchronization of external 60-minute Bars does not work properly when using "Fixed Bars"
    • Workaround: Use Most Recent (months, days etc.) option

  • (68057) "Max Entries per Day" PosSizer is sizing Alerts incorrectly (zero size)
    • Backtested values are correct.

  • (8125) Exception: Requested Clipboard operation did not succeed
    Quite frequently, after copying text in the Editor (Ctrl+C), the following exception occurs.
    • Suggestion: Do not use Wealth-Lab Editor in parallel with an active remote desktop session e.g. RDP/VNC and/or any 3rd party utility/software monitoring for clipboard activity in the background (e.g. Notepad++ with MultiClipboard plugin, KeePass with TCATO activated).

  • (151225) Intraday Excursion for a Positions' Entry Bar Are Not Reflected in the Drawdown Curve
    • Unlike Position.MFE/MAE functions, the portfolio drawdown series does not consider the intraday drawdown of positions on their entry bar. This affects strategies that exit at market after 1 bar, leading to false report of actual drawdown experienced by the Portfolio.

  • (177412) Trades Tab does not include Dividends for Trade profit

  • Lockup during logon to Fidelity (applies to Fidelity Wealth-Lab Pro only)
    • WLP locks up intermittently when logging in to Fidelity. Fidelity confirms that your account is OK. Password is correct.
    • Workaround: When you detect the login lockup, start the Windows Task Manager (right click in the Windows task bar), go to the Processes tab, and sort the Image Name column from Z to A. Look for WealthLabPro.exe (or WealthLabPro.exe *32), right click and "End Process". Restart WL Pro and log in again.
    • Workaround: If your WLP password contains any special character like this, change it: !@#$%^&*()-+=~`:"№;?
    • Workaround: Check with Fidelity that your account has WLP entitlement.

  • Crash upon playing a WAV file for the Alert sound
    • Wealth-Lab will crash when playing a non-PCM wav file (like any in ​C:\Windows\Media\subfolder\*.wav)
    • Workaround: Choose PCM WAV files only (C:\Windows\Media\*.wav files are probably okay), other types and codes are unsupported.

  • (221370) Equity Curve does not copy Open Positions data


  • (177409) Fundamental items plotted before acquiring the data can't be refreshed until the chart is reopened

  • (182124) Drag and drop doesn't function for non-symbol fundamental items (affects Wealth-Lab 6.7 and higher)
    • Workaround: click "Push all indicators and fundamental items into the Strategy code"

Strategy Wizard ("New Strategy from Rules")

  • (3926) Multiple Open Positions allowed in Single Position Rules-based Strategy.
    • The Strategy Builder does not take into account the possibility that multiple stacked stop and/or limit orders can trigger on the same bar in a "Single open Position" Strategy.
    • Workaround: convert result to code-based Strategy and fix the logic manually.

  • Issues when regional settings imply the usage of ',' as the currency/decimal separator.
    • (97929) When an indicator requires a double type input, generated Strategy produce a compiler error CS1501
    • Comma (',') may not be accepted when typing in fractional values
      • Workaround: switch both numeric and currency decimal separators in Windows (Control panel - Regional options) to "." (dot). You might need need to replace "," to " " (blank space) in digit grouping symbol, if applicable.

  • (177410) Optimization Results > "Set these parameters as default" has no effect in Rule-based strategies
    • Workaround: "Open Code in new Strategy Window", optimize, and set the parameters as defaults.

  • (177411) "Set these parameters as default" after optimization of a Rule-based strategy may fail if the Strategy contains rules with identical parameter names (e.g. two moving average crossover or Parabolic stop conditions). Generated code is borken and won't compile.
    • Workaround: Either fix compiler error manually, or rename all identical strategy parameter names so they become unique across all existing conditions in the Strategy

Combination Strategies

  • Compiled strategies are not available in Combination Strategies
    • Compiled Strategy libraries like "ActiveTrader Strategy Pack" or custom compiled libraries do not appear on the available Strategy list in Combination Strategies.

  • (90184) Occluded Button, Text Labels in Combination Strategy Control. Intermittent issue affecting 6.4+. After loading a saved Combination Strategy, not all form elements are drawn. Some controls appear as black boxes.

  • Combination Strategies ignore manually set parameter values, always taking the default value from the code.

Compiled Strategies

  • Strategy Parameters missing for Precompiled (DLL) strategies when opened from Home Page
    Precompiled strategies (in a DLL) are missing Parameter Sliders when opened from the Home Page. Workaround: open the Strategy conventionally i.e. via "Open Strategy".

  • (3844) Preferred Values cannot be saved for Strategy Libraries

Strategy Monitor

  • NullReferenceException in Strategy Monitor
    Strategy Monitor doesn't work, throwing an exception when trying to open its window or add a strategy on 1-10 minute bar intervals:

    System.NullReferenceException: Object reference not set to an instance of an object.
    • Workaround: open the Preferences dialog (F12 key) and select any Streaming data provider.

  • (84581) Unable to access symbols that start with % (affects external symbols created in Index-Lab)

  • (98369) Strategy Monitor: Run Now Hangs Up with Intraday Data: an already Activated strategy hangs with "Run Once beginning..." after selecting "Run this Strategy Now"
    • Workaround: to un-freeze it, double click on it to edit and OK the dialog, then "Activate" - you'll get "Run now ended".

  • (179201) Strategy Monitor is unable to catch up with updating a 1-minute Strategy applied to more than 25 symbols if it's initialized during market hours because during the initial activation / data update, each symbol takes approximately 2-3 seconds to update.

  • (107082) "Current TimeZone not found" error
    When Strategy Monitor is opened, you get an error message saying that Current TimeZone not found. Bug affects localized Windows 7 Ultimate or Enterprise editions when user changes the system's Display Language.
    • Workaround: revert the Display Language (e.g. German Windows Ultimate, Display Language changed to English - roll it back to German).

  • (6.8) (188192) Strategy Monitor: Preferred Values Not Used When Enabled Fixed in 6.9.15
    The Strategy Monitor does not apply Preferred Values when enabled to do so.

  • Custom columns in Strategy Monitor and Strategy windows: enhancement request, deferred

  • (6.8) (192681) Strategy Monitor creates duplicate Alerts for a single signal to trade a secondary symbol.
    • Workaround: Use the Strategy Window. It will generate a single alert only, as expected.

  • (6.9) "Run Dailies" always fail on second attempt in WLD (results are mixed in WLP)

WealthScript & Strategy Editor

  • (7282) SplitPosition() does not interact realistically in Portfolio Simulation Mode
    • Background: In a Portfolio Simulation it's correct to expect that all Positions associated with a split be accepted or all be rejected according to the amount of cash available on the entry bar.
    • Problem: Currently Wealth-Lab treats split Positions as a separate Positions competing for cash, and if Position.Priority is random each Position has a random chance of being selected or rejected in a high-exposure MSB Portfolio Simulation. A possible outcome is that one Position associated with a split be accepted while another is rejected, which is unrealistic.
    • Partial Work-around: After calling SplitPosition(), assign the same Priority to the new split Position as the original. The assignment will help to reduce (but in no way guarantee) the frequency that different actions are taken for Positions associated in a split when the strategy enters several Positions on the same bar.

/* Example: */
    Position p = LastPosition;            // Position to split
    Position sp = SplitPosition(p, 49.99);   // The new Position
    sp.Priority = p.Priority;             // Assign the same Priority as the original Position

  • After SplitPosition, most AsOfBar properties are invalid for the first Position in Port.Sim. mode
    • Problem: Having split a Position into two with SplitPosition, the following properties incorrectly report 0, NaN for the first part of the splitted Position if Strategy is run in a Port.Sim. mode: MFEAsOfBarPercent, MFEAsOfBar, MAEAsOfBarPercent, MAEAsOfBar, NetProfitAsOfBarPercent, NetProfitAsOfBar.
    • Partial workaround: Switch to a Raw Profit position sizing mode.

  • (250) ClearPositions does not function as expected in MSB
    • Problem: In Multi-Symbol Backtest mode, the ClearPositions method clear trades for all symbols in a DataSet. On the Trades list, only the last symbol's trades are left. It is working by design of the new Wealth-Lab .NET, where all of the positions are stored in one list - that's why ClearPositions clears them all and does not work as expected in Multi-Symbol Backtest mode.

  • (76675) Editor: Non-white space character cannot be typed if included in CreateParameter after ampersand
    • Problem: Including an ampersand as part of CreateParameter description (e.g. "L&S") and compiling prevents from typing the character after the ampserand (i.e. "S"), whitespace excluded, in that Strategy Window.
    • Workaround: Don't use an ampersand for the parameter's string name. If you must, just leave a space after it.

  • (103725) FundamentalDataSeriesAnnual overload with symbol name ignores the symbol parameter, executing on the current (primary) Bars.
    • Workaround: Wrap the call to FundamentalDataSeriesAnnual(symbol...) in SetContext/RestoreContext.

  • FundamentalDataSeriesAnnual may return zero if the most recently reported fiscal quarter is FQ4.
    • Workarounds:
      Call this function in place of FundamentalDataSeriesAnnual():
      public DataSeries FDSeriesAnnual(string symbol, string item, int offset)
      int bar = Bars.Count - 1;
      DataSeries result = FundamentalDataSeriesAnnual(symbol, item, offset);
      int fq = (int)GetFundamentalItem(bar, symbol, "fiscal quarter").Value;
      while (fq == 4 && bar > 0)
      result[bar] = FundamentalDataSeries(symbol, item, 4, false, offset * 4)[bar];
      fq = (int)GetFundamentalItem(bar, symbol, "fiscal quarter").Value;
      return result;

      You can also use the aggregate overload for FundamentalDataSeries to add the last rolling 4 quarters of a fundamental item:
      string eps = "earnings per share";
      //Replace this:
      //PlotSeries(FundPane,FundamentalDataSeriesAnnual(eps, 0), Color.DeepPink, LineStyle.Solid, 2);
      //With this:
      PlotSeries(FundPane,FundamentalDataSeries(eps, 4, false, 0), Color.DeepPink, LineStyle.Solid, 2);

  • (182123) Invalid Benchmark Buy and Hold message for DataSetSymbols
    • When using SetContext in a DataSetSymbols loop, the dialog "Invalid Benchmark Buy and Hold Symbol:" is displayed when encountering a symbol with a null Bars object. This occurs even if Benchmark Buy & Hold is not enabled.

  • (192679) Benchmark B&H Throws "Error processing symbol [last in DataSet]"
    • If no data exists for the first symbol in the DataSet for a Multi-symbol Backtest (Portfolio Simulation mode) and Benchmark B&H is enabled, the error appears and the simulation post-processing (visualizer) is aborted.
    • "Error processing symbol {last symbol} Index was out of range. Must be non-negative and less than the size of the collection. Parameter name: index"

  • (221371) ChartPane.Decimals doesn't work for all panes but the VolumePane

  • SetScaleMonthly doesn't always function correctly with Weekly data of external symbols
    • Problem: Applying SetScaleMonthly to a compressed Weekly chart (source data is Daily) of an external symbol may result in an incorrect compressed data (month has more than 4 weeks)
    • Workaround: Use a workaround from this forum thread.

  • AddCalendarDays issues:
    • AddCalendarDays breaks chart scroll
    • Bars.IsSynthetic wrongly marks the first trading bar after a series of synthetic bars added by AddCalendarDays. It does not work as documented, i.e. synthetic bars are not marked.
    • AddCalendarDays always peeks, even when the interpolate parameter is set to false. A work-around to that behavior can be found in this forum thread.

  • Synthetic option issues:
    • The OHLC values of synthetic put contracts are incorrect (unlike calls)
    • If the price of the underlying is above the Put's strike prior to bar 30, then the Put is priced at zero. The opposite is true for calls.

  • (757) Dynamic WatchList Support: enhancement request To be introduced in Wealth-Data


  • (98348) Optimizer API not sufficient to create parallelized, multi-threaded optimizers. Leverage benefits of multi-core CPUs in Optimizer.

  • (157411) WFO Crashes on Bars with Open Interest.
    • Wealth-Lab crashes 5-10 seconds with an unhandled "Index was out of range" exception after starting a Walk-Forward Optimization on data containing an Open Interest series.

  • (76499) Exhaustive optimization (2 Parameter Graph) may be unable to plot all values when step is relatively tight compared to the range
    • A cosmetic/display issue which does not affect the accuracy.

  • (98351) The Optimization control lacks the ability to selectively omit Strategy Parameters from optimizations

  • (98352) 3D graph colors: change the existing color scheme from the current 'dark blue to white' to a more intuitive version

  • (13704) Optimizer runs past Stop value

  • (192680) ​Monte Carlo optimization locks up on 2nd run of "Dual Donchian Bands [Rev.A]" strategy after changing a parameter

  • ​Monte Carlo optimizer crashes Wealth-Lab when running concurrent optimizations in multiple workspaces.
    • Workaround: do not run multiple instances of MC optimization.

  • Genetic Optimizer crashes Wealth-Lab if: with "Genetic" as selected optimization method, choose "Estimate" in Optimization Control, switch optimization method to e.g. "Exhaustive", click "Begin Optimization" and then Cancel Optimization", then re-select "Genetic" and choose "Begin Optimization". Fixed in v2016.05.2

  • Genetic Optimizer crashes Wealth-Lab when minimum/maximum Strategy parameter values are mixed up Fixed in v2016.05.2
    • Workaround: fix your Strategy parameters. Example:

      // CORRECT
      fastPeriod = CreateParameter("Fast Period", 20, 1, 200, 1);
      // INCORRECT
      fastPeriod = CreateParameter("Fast Period", 20, 100, 1, 1);


  • (182119) Wealth-Lab 6.8 crashes when adding EMA on a chart that contains an inexistent symbol Fixed in 6.9
    • Create a new chart window, add an EMA indicator, type a nonexistent symbol name in the Symbol box

  • When running a Strategy in MSB mode when an indicator is used in multiple scales simultaneously (via SetScale...) and it accepts Bars as a parameter, you get an error message and chart rendering stops incorrectly:
    • Error processing symbol XXX Unable to cast object of type 'WealthLab.DataSeries' to type 'WealthLab.Indicators.IndicatorName'

  • (55091) Calculating StochD gets slower in geometric progression depending on smoothing
    • Building StochD using shorter lookback and smoothing period (e.g. 14,3) is fast, but slows down in geometric progression when larger periods are selected.
    • Workaround (for code-based Strategies):
      //DataSeries stochd = StochD.Series(Bars,period,smooth);
      DataSeries stochd = SMA.Series( StochK.Series(Bars,period), smooth);
    • Workaround (for rule-based Strategies):
      When speed matters, replace your long-term StochD(period,smooth) with corresponding StochK(period) used with SMA(smooth)

  • (4037) Consider Standard Indicator CalculatePartialValue methods incorrect until proven otherwise

  • (756) Williams %R readings contradict standards
    • They range from 0 to 100 while the common wisdom is to plot it on inversed scale, i.e. from 0 to -100.
    • Workaround: the final result has to be multiplied by -1.
      DataSeries PctR = WilliamsR.Series( Bars, 14 );
      PctR *= -1;

  • (18427) FirstValidValue after Synchronize is incorrect for ARSI

  • (3138) Manually typed overbought/oversold threshold values less than 1 are rounded in Indicator Options dialog (which doesn't affect their correct plotting on the chart)


  • Some IndexDefinitions from MS123 IndexDefinitions library do not load when "Most Recent" or "Date Range" data loading option is selected, producing a chart with "No Data Available" and 0 bars reported in Data Manager > Symbol Details. Fixed in Wealth-Lab 6.9
    • Affected: Cumulative Volume Ratio, Demand Index, Eliades TRIN, Haurlan Index, JK HiLo Index, Low Frequency Trading, McClellan Oscillator, McClellan Oscillator - Volume, McClellan Summation Index, McClellan Summation Index - Volume, Merriman Volume Model, New Highs and New Lows Oscillator, Swenlin Trading Oscillator, Swenlin Trading Oscillator - Volume, and Trend Exhaustion Index.
    • Workaround: Use "All Data" or "Fixed Bars".

  • (146423) Invalid indicator settings error. Applied to Wealth-Lab Pro 6.6-6.7. Partially fixed in 6.8
    • After upgrading WL Pro to 6.6, Aggregate Indicator and Above/Below Indicator Value indexes fail with the following error:
      Error: Invalid indicator settings. Unable to get Data for index: %STOCHD_DOW_30
    • Above/Below Indicator Value may still be affected according to some reports

  • Index stops updating if underlying DataSet contains invalid/unsupported symbol(s)
    • If the DataSet the index is based on contains symbol(s) which are either invalid or return an error during update, Index-Lab will not complete updating the index.
    • Workaround: remove invalid/problematic symbols from the DataSet

  • (179209) Index-Lab (IL) performance for updating and use in Strategies is suboptimal when working with large DataSets:
    • Updating IL data re-requests symbol updates when contained in different indices
    • IL symbol updates are aborted when encountering an updated error for an invalid symbol
    • Accessing an IL symbol in a Strategy may be excessively slow


  • "Update all data" does not update any data Fixed in extension update v2017.04
    • This happens when you try to "Update all data" after having just created some DataSet(s). Affected providers were: FRED, Quandl, Google, Dukascopy, Morningstar, Nasdaq, Stooq.
    • Workaround: If you update the DataSet by the new provider just once, "Update all data" will be working as expected.
    • Solution: Update said providers to v2017.04 or higher.

  • Fidelity: Affects Fidelity WLP users only.
    • (46123) Fidelity data fails to update again if it was not updated in several months.
    • Streaming 60-Minute bars with the Fidelity provider indicates "No Data Available".
      Workaround: Create and update a 30-Minute DataSet with the symbols required for 60-Minute streaming.
    • Streaming chart stops updating at XX:00 ET. The XX bar will include the high and low for the rest of the day. Alerts are not generated. I'm in Japan (or in the East).
      Reason: This happens when XX:00 falls on 24:00 (date change) in UTC time e.g. 11:00 in Tokyo is UTC 15:00 + Tokyo is UTC+9 = 24:00.
      Workaround: Change the time zone to ET.
    • Fidelity data can not be updated except for X minute. Update All Data stops after a message about processing a split.
      • Reason: reverse split in a symbol
      • Workarounds:
        • Use this script to delete the data, preparing for reload.
        • Use "Update DataSet"
        • Delete all directories in the FidelityStaticProvider folder in hidden directory C:/Users/AppData/Roaming/Fidelity Investments/WealthLabPro and reload static data.
        • Reload the split symbol's data manually (right click, "Reload chart history") or on a DataSet basis using the Data Tool.

  • MSN:
    • MSN provider returns Error: no data. Provider is broken beyond repair. Please use an alternative provider.

Orders and Trading

  • (13901) Stop orders (and Limit orders assumed) with constant price are unnecessarily canceled and replaced if the order's Position shares are reduced by Portfolio Synch or increased by Exit Orders "full Position" logic. Applies to Auto-Trading.
  • (163890) Quotes Stop After Removing Items. Streaming quotes in the Quotes tool may be halted inadvertantly after manually removing some items.
  • Quotes window throws a NullReferenceException:

    System.NullReferenceException: Object reference not set to an instance of an object.
    • Workaround: open the Preferences dialog (F12 key) and select any Streaming data provider.
  • Order stuck submitted. Applies to Fidelity Wealth-Lab Pro only.
    • A placed order show up in the Orders window with the status "Submitted" just stays "Submitted" and is not being sent to Fidelity.
    • Workaround: When this happens, restart WLP, log back in, delete the "Unknown" order statuses from the Orders tool, and try again. Also it's a good idea to restart WLP before every trading session.
  • WLP Cover orders are not offseting short positions. Applies to Fidelity Wealth-Lab Pro only.

Paper Trading

  • (62779) Market orders fail at session open "Could not get Quote".
  • (62854) Paper Trading in international markets doesn't work outside of hours defined in "US Equities".
    • Workaround: Launch a text editor with elevated privileges (as admin) and manually edit the Open and Close Market hours in the ..\Data\Markets.xml file beneath Wealth-Lab's main program directory under Program Files (and/or Program Files(x86)).
  • (63321) Accounts Tool: Profit does not reflect Futures Mode Point Value

Development related (affects Extension development)

  • (7980) Wealth-Lab crashes if Streaming provider returns null instead of an instance of a Static data provider.

  • (30255) SystemPerformance.Strategy.DataSetName returns wrong DataSet name for Rotation-type Strategy.
    • Returns the DataSetName string stored in the XML file at the time of saving it.

  • (7488) IsIntraday Bug in Performance Visualizers, PosSizers
    • The .IsIntraday property of SystemPerformance.Results.EquityCurve, .Results.CashCurve, .ResultsBuyHold.EquityCurve, .ResultsBuyHold.CashCurve, ResultsLong.EquityCurve, .ResultsLong.CashCurve, .ResultsShort.EquityCurve, .ResultsShort.CashCurve incorrectly boolean value false on all intraday data while true should be returned.

  • (62853) In PosSizers, the Candidates list is empty for Alert sizing
    • The collection functions as advertised for historical backtests, but for sizing Alerts at Bars.Count it is not being populated.

  • (68056) PosSizers: Starting Equity/Cash are reported for Alerts at Bars.Count. Update: In multi-symbol backtests, there may be a discrepancy between the "EquityCurve" and "equity" values. Under investigation
    • The feature functions as advertised for historical backtests, but for sizing Alerts at Bars.Count it is equal to the starting equity value.

  • (80612) Visualizers: RawTrades issues in Combination Strategies
    • The SystemPerformance.RawTrades.Count property in Aggregate Strategy mode is identical to its Number of Trades: i.e., trades dropped due to insufficient capital are not included on the RawTrades list.
    • All Combo Strategy children have their SystemPerformance.RawTrades property null.

Important Disclaimer: The information provided by Wealth-Lab is strictly for informational purposes and is not to be construed as advice or solicitation to buy or sell any security.  The owner of Wealth-Lab.com assumes no liability resulting from the use of the material contained herein for investment purposes. By using this web site, you agree to the terms of this disclaimer and our Terms of Use.

Used under license from FMR Corp. Copyright 2008 FMR Corp. All rights reserved.

ScrewTurn Wiki. Some of the icons created by FamFamFam.